Oracle 实现数据表插入时主键列自增


首先创建sequence:

create sequence TEST_SEQ  //序列名(TEST_SEQ 为序列名,自定义命名)­
increment by 1  //每次增加1­
start with 1  //从1开始­
minvalue 1  //最小值1­
nomaxvalue  //没有最大值 或者­ maxvalue 99999999999999999
nocache  //没有缓存序列­ 或者 cache 20 缓存20个

 

select TEST_SEQ.currval from dual;   //查询当前的序列值
select TEST_SEQ.nextval from dual;  //查询下一个序列值

 

假设表名为orcl_test
方法一:自动获取自增主键

INSERT INTO orcl_test VALUES(TEST_SEQ.nextval , '小明','xiaoming',.....)  //直接在主键自增列上用TEST_SEQ.nextval 来获取值就行

方法二:使用触发器

create or replace trigger test_trigger //(test_trigger) 触发器名称
before insert 
on orcl_test  //(orcl_test)表名称
for each row  // for each row : 对表的每一行触发器执行一次
begin
select TEST_SEQ.nextval into :new.id from dual;  // (new.id)new 等于新插入的一行, id 是orcl_test 表要实现自增的主键列
end;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM