• Oracle和SQLSERVER实现主键自动增长


    一:Oracle中实现主键的默认自增长
      很多时候在做和数据库相关的操作的时候,主键不能由用户去填写或涉及多个用户同时操作一张表的时候,就需要对主键进行严格的控制,这里主要讲Oracle中如何实现主键的自增长。  www.2cto.com  
     
           主要由三步组成,1)建表;2)建立序列;3)建立触发器(目的是在表插入数据的时候启用序列生成的值),我们通过下面的例子来说明:
     
            1)建立对应的数据库表:
            drop table TEST;
            create table TEST
            (
               bsm         NUMBER(10) not null,
               xh          NUMBER(10),
               posx        NUMBER(15,5),
               posy        NUMBER(15,5)
             );
           alter table TEST add constraint PK_TEST primary key (BSM);
            2)建立序列
          drop sequence TEST_SEQ;
           create sequence TEST_SEQ
           minvalue 1
           maxvalue 999999999999999999
           start with 1
           increment by 1
           cache 20;
    注:建立序列,最小值为1,从1开始计数和每次递增量为1;
            3)建立触发器  www.2cto.com  
           drop trigger test_trig;
           CREATE OR REPLACE TRIGGER "test_trig"
           BEFORE INSERT ON test
           REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
           DECLARE
           BEGIN
               SELECT TEST_SEQ.NEXTVAL INTO :NEW.BSM FROM DUAL;
           END test_trig;
    通过上述三步就完成了主键自动生成的设定,以后就可以根据业务需求直接插入业务数据就可以了
     
    二:SQLSERVER中实现主键的默认自增长:
    通过 IDENTITY 来设置,参数有2个,一个是“初始值” 一个是“增量”。
    默认情况下 INSERT 语句中,不能对 IDENTITY 的字段进行赋值。
    CREATE TABLE test_create_tab2 (
    id INT IDENTITY(1, 1) PRIMARY KEY,
    val VARCHAR(10));

  • 相关阅读:
    SQL 基础题。
    C# 多维数组.
    C# 泛型相关.
    C# 委托数组.
    ActiveX的数字签名
    Asp.Net Html标记替换.感谢个热心人。弄了好久.
    关于TableLayoutPanel里放入控件无法将Dock设为Fill的解决办法
    服务器×××上的MSDTC不可用解决办法
    vista home下运行asp.net2.0 程序环境配置
    麦克风的调节
  • 原文地址:https://www.cnblogs.com/haoshuai1950/p/5229298.html
Copyright © 2020-2023  润新知