【发布时间】:2011-11-11 10:31:56
【问题描述】:
我有一个包含大约 150 个表的 postgresql 数据库(这是一个 Django 1.2 项目)。 Django 在创建表时将ON DELETE NO ACTION 和ON UPDATE NO ACTION 添加到外键。
现在我需要根据特定条件从一堆表中批量删除数据(大约 800,000 条记录)。
使用Model.objects.filter().delete() 不是一种选择,因为数据量很大并且需要很长时间。
只有最合理的选项似乎是级联删除,但由于 Django 添加了“ON DELETE NO ACTION”,它似乎是一个没有选项。
所以我的问题是:有什么方法可以轻松地将所有外键更改为 ON DELETE CASCADE(其中有很多)或类似的方法。
(我知道我可以为每个表手动编写 SQL 查询,但这将是一项艰巨且难以维护的任务。)
【问题讨论】:
标签: django postgresql cascading-deletes