0

我在 MySQL 数据库中编写了表。恰好有一个艺术表,以及三个相关的表,雕塑、绘画和照片。

Art 中的每个项目也恰好在其他三个项目中的一个中,并且仅在其中一个中。我正在尝试编写一个触发器,以便当我在绘画中删除一个元组时,触发器将删除艺术中对应的元组。

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

所以我不确定我是否应该通过将 id_no 临时保存在某处(从绘画中删除),然后在触发器中进行比较并删除(从艺术),甚至如何做到这一点。

DELIMITER $ 创建触发器 delete_painting 删除绘画后从艺术中删除

4

1 回答 1

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

“表”OLD仅包含您已删除的行,因此您可以执行此操作。

于 2012-10-29T01:59:04.080 回答