有兩點不大明白
1:在一個觸發器中有兩個insert語句,第一個執行失敗,程序會繼續執行嗎,如果執行的話,第二個insert語句成功了,能不能提交。
2:觸發器中的raise_application_error被執行,應該就整個觸發器不執行了吧?錯誤前面執行過的應該是回滾吧。?
1:在一個觸發器中有兩個insert語句,第一個執行失敗,程序會繼續執行嗎,如果執行的話,第二個insert語句成功了,能不能提交。
2:觸發器中的raise_application_error被執行,應該就整個觸發器不執行了吧?錯誤前面執行過的應該是回滾吧。?
2 after insert on abc
3 for each row
4 begin
5 insert into abc_temp values(:new.id,null,sysdate); --异常
6 insert into abc_temp values(:new.id,:new.name,sysdate);
7 end;
8 /Trigger createdSQL> insert into abc values(1,'aaaaa');insert into abc values(1,'aaaaa')ORA-01400: 无法将 NULL 插入 ("UCNZP"."ABC_TEMP"."NAME")
ORA-06512: 在 "UCNZP.T_ABC", line 2
ORA-04088: 触发器 'UCNZP.T_ABC' 执行过程中出错SQL> select * from abc; ID NAME
---------- -----SQL> select * from abc_temp; ID NAME INSERT_TIME
---------- ----- -----------SQL>