Oracle 实现插入自增列

一:创建sequence

create sequence TEST_SEQ  --序列名 (TEST_SEQ 为序列名,随便取名)­ 
increment by 1 --每次增加1 ­ 
start with 1 --从1开始 ­ 
nomaxvalue --没有最大值 ­ 
nocache --没有缓存序列­ 或者 cache 20 缓存 20 个
select TEST_SEQ.currval from dual; --查询当前的序列值


select TEST_SEQ.nextval from dual; --查询当前自增后的序列值

二:创建表插入

假设表名为ORCL_TEST ,SQL语句如下:

INSERT INTO orcl_test VALUES(TEST_SEQ.nextval , '王小明','小明',.....) -- 直接在主键自增列上用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;
 公司换oracle了,自己写demo练练手,顺便记一下

你可能感兴趣的:(Oracle,Oracle,Java,SQL,主键自增,oracle序列)