好的,所以我的問題應該是一個容易的問題,我認爲。 我剛剛學習觸發器,我試圖找出一個功課問題。 我有三個表, 電影(名稱,年份長,流派,studioName,製片人) StarsIn(movieTitle,starName) MovieStar(姓名,地址,性別,出生日期)Oracle SQL觸發器插入/更新
所以基本上我需要寫一個觸發器確保在任何時候出現在StarsIn中的任何恆星也出現在MovieStar中。我需要爲插入和更新事件做觸發器。
UPDATE: 行,所以我改變了我的說法有點,但我仍然不明白這一點
CREATE OR REPLACE TRIGGER movieTrigger
AFTER UPDATE OR INSERT ON STARSIN
FOR EACH ROW
WHEN(new.STARNAME NOT IN(SELECT "NAME" FROM MOVIESTAR))
BEGIN
INSERT INTO MOVIESTAR("NAME")
VALUES(new.STARNAME)
END;
現在我得到的錯誤
Error report:
ORA-02251: subquery not allowed here
02251. 00000 - "subquery not allowed here"
*Cause: Subquery is not allowed here in the statement.
*Action: Remove the subquery from the statement.
我剛剛得知,Oracle並不支持when子句中的子查詢... 所以我想用有限的知識來解決這個問題。但如果任何人有一個聰明的方式做到這一點,我真的很想知道:-)。
再次感謝
爲什麼你不只是用這個外鍵?沒有理由認爲這應該成爲觸發器。 – Scotch 2013-05-04 19:51:16
這是一個家庭作業。 – Relics 2013-05-05 21:14:51
http://stackoverflow.com/questions/16404667/oracle-trigger-insert-update 這個環節應該幫助,我也有類似的問題.. – mingle 2013-05-06 18:46:59