我在MySQL数据库中编写过表。碰巧有一个 艺术表和三个相关的表,雕塑,绘画和照片。
Art中的每个项目恰好都在其中三个中。我正在尝试编写一个触发器,这样当我在绘画中删除一个元组时,触发器将删除Art中对应的元组。
这应仅适用于绘画,不会影响Sculpture或Photo。这些项目中的每一项都有一个id_no,并且绘画中每个绘画都有一个匹配的id_no。我不能只删除Art中不存在的任何id_no,因为它可能仍然存在于Sculpture或Photo中。
所以我不确定我是否应该暂时将id_no保存在某处(从绘画中删除),然后在触发器中进行比较和删除(来自Art),或者甚至是如何做到这一点
DELIMITER $ 创建触发器delete_painting 删除绘画后 从Art WHERE中删除
答案 0 :(得分:1)
DELIMITER $
CREATE TRIGGER delete_painting AFTER DELETE ON Painting
DELETE FROM Art WHERE OLD.id_no = Art.id_no; $
'table'OLD
仅包含您已删除的行,因此您可以执行此操作。