如何在PostgreSQL中删除多个具有外键的表?

Som*_*luk 5 sql postgresql sql-drop

我知道删除多个表的语法是:

DROP TABLE foo, bar, baz;
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,3个表之间有外键和其他表不被删除.

  • 表1:外键来自表2,表3,数据库中还有3个表.
  • 表2:Forign键从表3中,在数据库中还有2个表.
  • 表3:Forign键来自数据库中的另外3个表.

那么如何删除这3张桌子呢?他们在表格中有数据.上面的语法会忽略外键吗?数据库中的其他表不应存在任何数据不一致.

a_h*_*ame 13

您可以通过使用cascade关键字告诉Postgres自动删除引用这些表的所有外键:

DROP TABLE foo, bar, baz CASCADE;
Run Code Online (Sandbox Code Playgroud)