定义了ON DELETE RESTRICT时,是否有任何方式可以通过查询使用ON DELETE CASCADE功能?

时间:2018-12-25 17:55:58

标签: mysql foreign-keys

我已将外键创建为ON DELETE RESTRICT,但有时我需要删除子记录以及删除父记录。我不能使用“ ON DELETE CASCADE”,因为我更需要该限制。那么,有什么方法可以在运行时使用任何关键字或类似下面查询中的内容来更改外键的行为吗?

delete * from table1 where ID='3' CASCADE CHILD;

delete * from table1 where ID='3' SET foreign_key_behavior= 'ON DELETE CASCADE';

1 个答案:

答案 0 :(得分:0)

否,如果您未使用ON DELETE CASCADE选项定义外键约束,则没有强制执行临时级联删除的语法。

尽管在注释中有@RaymondNijland的建议,但在MySQL中无法对联接中的两个表执行DELETE操作。

使用MySQL 5.6的演示:

rows[1]

您必须为每个子表执行一个单独的删除操作,然后为父表执行一个删除操作。