我可以在Postgresql中执行这样的事情,即CASCADE DELETE
只执行一条语句吗?
DELETE CASCADE FROM foo WHERE bar = 'baz';
我的目标是不仅删除表中选定的记录foo
,还删除所有表中列用作外键的所有记录,而不添加整个表的约束:。foo.id
foo
ON DELETE CASCADE
有关的:
- postgresql - 级联删除一次 - 堆栈内存溢出- 2008 年提出了类似的问题。我想知道从那时起是否发生了任何变化。
- 删除一个表中的行也应该删除另一个表中的相应行- 我想避免这种情况,因为它
ALTER
是整个表,并影响所有DELETE
语句。我想做这样的事情,但是基于每个语句。 - PostgreSQL:文档:16:5.4。约束- 无法在文档中找到答案。
- 对外键使用“ON UPDATE CASCADE ON DELETE CASCADE”是好还是坏主意?为什么这个机制会存在呢?
ON DELETE CASCADE
-本问答的答案中讨论了优点和缺点。
没有办法自动删除所有依赖行;您必须先删除它们,然后才能删除引用的行。