1、序列的建立:
create sequence "TEST_SEQUENCE" increment by 1 start with 1 nomaxvalue nocycle nocache;
說明:最后三個(gè)值是可以自行設(shè)定的
2、觸發(fā)器的建立:
create trigger "test_trigger" before
insert on test_table for each row when(new.id is null)
begin
select TEST_SEQUENCE.nextval into:new.id from dual;
end;
注意事項(xiàng):當(dāng)建立序列的時(shí)候,序列的名字最好是寫成大寫,雖然oracle會(huì)自動(dòng)進(jìn)行轉(zhuǎn)換,但是最近在
用的時(shí)候卻沒有注意,寫成的小寫序列名字并沒有轉(zhuǎn)成大寫,如此造成錯(cuò)誤!情況如下:
當(dāng)時(shí)序列名字寫成小寫,系統(tǒng)并沒有轉(zhuǎn)換大寫,這樣的話在接下來建立觸發(fā)器的時(shí)候會(huì)出現(xiàn):觸發(fā)器
建立成功,但是提示"編譯時(shí)有warning",最終導(dǎo)致觸發(fā)器不能正常使用,解決辦法就是將序列的名字
改成大寫。