oracle实现id自增

oracle实现id自增

  1. 关于主键:
    (1)在建表时指定primary key字句即可:
create table test( 
id number(6) primary key, 
name varchar2(30) ); 

(2)如果是对于已经建好的表,想增加主键约束,则类似语法:

alter table test add constraint pk_id primary key(id);

其中add constraint 和primary key是关键字,pk_id是主键名称,自定义的额,只要不重复即可;

  1. 关于id自增功能,也很简单,而且比较灵活。
    (1)首先建立一个序列(就是每次查询会自动增加值的绝不重复的对象,比如每次加1或每次加10)。语法:
CREATE SEQUENCE 序列名
[INCREMENT BY n] --每次加几
[START WITH n] --序列从几开始
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --最小值、最大值的限制

比如

CREATE SEQUENCE s_test start with 1 increment by 1;

就是建立了额一个从1开始每次加1的序列。
访问序列时,用 序列名称.nextval的语法。
比如对于上表,如果想要id字段实现自增。则在每次插入记录时,使用下面类似的语法(前提是表和序列已经建好)。

insert into test values (s_test.nextval,'张三');
  1. 创建触发器,这样再导入数据时不需要加主键字段
create or replace trigger test_trigger       
before insert 
on test       
for each row       
begin       
select s_test.nextval into :new.id  from dual;  
end ;  
  1. 测试
    添加数据
insert into test(name)  values ('cc');    
insert into test(name)  values ('dd');    
commit; 

链接:
[1]: https://zhidao.baidu.com/question/358461319.html