一:创建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数据库中使用序列实现自增主键,包括创建序列、使用序列值进行表插入以及通过触发器自动填充主键。
8408

被折叠的 条评论
为什么被折叠?



