我沒有用orcal的管理工具,而是用的DbVisualizer 9.5.2,管理數據庫。
場景:需要在oracle里面實在自增字段,在網上一搜一堆文檔,然后自己就找了一段自己寫如下:
drop table userTest;
create table userTest(
id number(10) not null,
name varchar2(20) primary key,
sex varchar2(2)
);
drop sequence userTest_seq;
create sequence userTest_seq
minvalue 1
maxvalue 99999999
increment by 1
start with 1
nocycle
nocache
noorder;
create or replace trigger userTest_tri
before insert on userTest
for each row
BEGIN
SELECT userTest_seq.NEXTVAL INTO :NEW.ID FROM DUAL
// :NEW.ID := NEXT_ID; --:NEW表示新插入的那條記錄
// end ;
END;
insert into userTest(name) values ('name');
一運行就拋出下面的錯誤:
[Code: 4098, SQL State: 42000] ORA-04098: 觸發器 'TIANJING.USERTEST_TRI' 無效且未通過重新驗證
解決方案:
首先查看該表的觸發器:
然后選中查看詳情:
查看詳情的時候,發現觸發器里面有錯,然后修改並保存:
好了,然后直接運行:
insert into userTest(name) values ('name');
數據庫里面的字段自動增加了~~