[英]PL/SQL Trigger Update or Delete
我有兩個表,它們的輸出看起來像:
Project Table
CODE NAME
------------ --------------
101 Alpha
222 Beta
355 Gamma
973 Delta
Assignment Table
ID NAME PROJCODE HOURS
----- ------------ -------------- ------------
55055 Smith 101 20
55055 Smith 222 10
39002 Hammond 973 25
00001 Preston 355 5
10000 Logan 355 5
00777 Bond 222 20
如果工作分配表中項目的最后一個人被更新/刪除(因此項目代碼中沒有人分配),我想將其從項目表中刪除。 我想將其輸出到DBMS_OUTPUT。 我編寫了以下觸發器,但是每次嘗試測試觸發器時都會出錯。
CREATE OR REPLACE TRIGGER project_removal_trigger AFTER
DELETE OR
UPDATE ON ASSIGNMENT FOR EACH ROW DECLARE PRINT project.code%type;
BEGIN
DELETE
FROM PROJECT
WHERE code NOT IN
(SELECT Projcode FROM assignment GROUP BY projcode HAVING COUNT(name) > 0
);
END;
我究竟做錯了什么?
觸發器無法從為其觸發的表中選擇。 否則,您會收到ORA-04091:表XXXX正在突變,觸發器/函數可能看不到它。 盡量不要在觸發器中添加過多的邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.