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));

转载于:https://www.cnblogs.com/haoshuai1950/p/5229298.html

你可能感兴趣的:(数据库)