触发从第二个MySQL表中删除

时间:2012-10-29 00:04:12

标签: mysql sql triggers

我在MySQL数据库中编写过表。碰巧有一个 艺术表和三个相关的表,雕塑,绘画和照片。

Art中的每个项目恰好都在其中三个中。我正在尝试编写一个触发器,这样当我在绘画中删除一个元组时,触发器将删除Art中对应的元组。

这应仅适用于绘画,不会影响Sculpture或Photo。这些项目中的每一项都有一个id_no,并且绘画中每个绘画都有一个匹配的id_no。我不能只删除Art中不存在的任何id_no,因为它可能仍然存在于Sculpture或Photo中。

所以我不确定我是否应该暂时将id_no保存在某处(从绘画中删除),然后在触发器中进行比较和删除(来自Art),或者甚至是如何做到这一点

  

DELIMITER $   创建触发器delete_painting   删除绘画后   从Art WHERE中删除

1 个答案:

答案 0 :(得分:1)

DELIMITER $
CREATE TRIGGER delete_painting AFTER DELETE ON Painting
    DELETE FROM Art WHERE OLD.id_no = Art.id_no; $

'table'OLD仅包含您已删除的行,因此您可以执行此操作。