一:创建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练练手,顺便记一下