假设我有3个表,“child1”,“child2”和“child3”,它们都有一个表“parent”的外键。 表“parent”得到一个字段“status”,如果某个元素的status设置为“0”,我会删除它的所有子节点。 (我使用触发器来检测状态变化)。 所以这就像调用“级联删除”,但不删除对象......
有没有好办法呢?
答案 0 :(得分:0)
触发器检测到更改,您需要使用它来触发存储过程。这是一个很好的教程:http://markalexanderbain.suite101.com/mysql-stored-procedures-and-triggers-a71091
或者,如果您使用的是php,coldfusion或其他一些中间层,您可以将记录读入变量。删除该行,然后重新插入记录。但是你最好使用存储过程完成工作。
答案 1 :(得分:0)
删除所有具有父母相关外键的子项..
authorname = Bill, authorid = 5
我们需要按帐单删除所有图书
DELETE FROM books WHERE authorid=5
编辑:抱歉,重新阅读..您可以在状态为UPDATE
的情况下实施此逻辑