0
为了保持参照完整性,我在几个表上设置了外键约束,没有ON CASCADE DELETE
。在MySQL控制台中级联删除
但是有时候我想放松一点,主要的例子是在开发环境中我想创建一个生产数据集的修剪/清理副本。所以,我希望能够做这样的事情:
DELETE FROM x WHERE foo = 'bar'
,但在另一台y
引用删除行中x
也被删除的行。目前与我的约束,这失败了:
Cannot delete or update a parent row: a foreign key constraint fails
有没有办法在不改变表的MySQL中做到这一点?我隐约记得来自Oracle或Postgres的DELETE CASCADE FROM x WHERE foo = 'bar'
之类的东西,但我不确定如何在MySQL中执行此操作。
我知道FOREIGN_KEY_CHECKS = 0
,但是这只会在y
中留下悬挂参考;我希望他们被删除。
这是在简单的情况很好,但有时也有多个层次(X - >Ÿ - > Z,等等)。理想情况下,我想自动级联删除,而无需手动指定联接。 –