【发布时间】:2010-09-07 22:03:44
【问题描述】:
我有一个包含几十个表的数据库,这些表通过外键相互关联。在正常情况下,我想要这些约束的默认 ON DELETE RESTRICT 行为。但是当尝试与顾问共享数据库快照时,我需要删除一些敏感数据。我希望我对DELETE FROM Table CASCADE 命令的记忆不是纯粹的幻觉。
我最终做的是转储数据库,编写一个脚本来处理转储,通过添加ON DELETE CASCADE 子句和所有外键约束,从中恢复,执行我的删除,再次转储,删除ON DELETE CASCADE,最后再次恢复。这比我在 SQL 中编写删除查询要容易——删除整个数据库切片不是正常操作,因此架构并不完全适应它。
下次出现这种情况时,有人有更好的解决方案吗?
【问题讨论】:
标签: sql postgresql