我有来自table1的colum1没有“ON DELETE CASCADE”。
来自table2的colum2,来自table3的colum3。两者都有colum1的外键
如何删除column1中的值以及表2和表3中具有column1外键的值?
编辑: 我无法从子表中删除行,然后从父表中删除行。 我有一个非常庞大的数据库,有复杂的сonnections,其中 table4中的colum4指向table3中的colum3,依此类推......
答案 0 :(得分:0)
您不需要ON DELETE CASCADE
,只需要来自子表的DELETE
行,然后来自父表。
DELETE FROM table2
WHERE column2 = ?;
DELETE FROM table3
WHERE column3 = ?;
DELETE FROM table1
WHERE column1 = ?;
修改强>
我无法从子表中删除父表中的行。我有一个非常庞大的数据库,包含复杂的сonnections,其中table4中的colum4指向table3中的colum3,依此类推。
明确地执行此操作总是比依赖于多个级联DELETE
更加安全,因为您可能最终会出现意外删除。
答案 1 :(得分:0)
您只需在删除父记录之前删除子记录。在CASCADE之外,没有其他方法可以实现此目的。数据库有DDL是有原因的;是对,错,或无所谓。