删除依赖表中包含许多行的行

时间:2012-05-09 13:26:59

标签: mysql relational-database

我有一个表格列表。有像这样的constaints的依赖表:

CONSTRAINT `FK_list_id` FOREIGN KEY (`list_id`) 
  REFERENCES `lists` (`list_id`) 
  ON DELETE CASCADE ON UPDATE CASCADE.

例如,如果我有一些list_id子表中的许多行(数千或更多),则删除它需要很长时间。此外,这些操作可以限制服务器。

在这种情况下我应该如何删除列表?我应该不使用ON DELETE CASCADE,而是删除列表然后在后台删除订阅者而不是通过级联删除子行删除列表?

1 个答案:

答案 0 :(得分:0)

您可以改为使用ON DELETE SET NULL,然后您可以搜索FK ID为NULL的记录并删除它们。