好的,所以我认为我的问题应该是一个简单的问题。我只是在学习触发器,我正在尝试找出一个家庭作业问题。我有三个表, Movies(标题、年份、长度、流派、工作室名称、制片人) StarsIn(movieTitle、starName) MovieStar(姓名、地址、性别、出生日期)
所以基本上我需要编写一个触发器来确保在任何时候出现在 StarsIn 中的任何明星也出现在 MovieStar 中。我需要为插入和更新事件触发。
更新:好的,所以我稍微改变了我的陈述,但我仍然无法弄清楚
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 子句中的子查询......所以我试图用有限的知识来解决这个问题。但是,如果有人有这样做的聪明方法,我真的很想知道:-)。
再次感谢