7

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

DROP TABLE foo, bar, baz;

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

  • 表 1:表 2、表 3、数据库中另外 3 个表的外键。
  • 表 2:外键 来自表 3,数据库中还有 2 个表。
  • 表 3:外键来自数据库中的另外 3 个表。

那么我怎样才能删除这 3 个表呢?他们在表格中有数据。上面的语法会忽略外键吗?数据库中其他表不应该有任何数据不一致。

4

2 回答 2

20

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

DROP TABLE foo, bar, baz CASCADE;
于 2013-03-14T08:33:12.363 回答
0

通常,

如果 Table1、Table2 和 Table3 的主键在数据库中的任何其他表中被称为外键,您将有可能出现不一致。

如果你有,删除这些表的最安全方法是

首先通过 -

ALTER TABLE table_name DROP CONSTRAINT "table_name_id_fkey";

然后一一删除这些表。

于 2013-03-14T07:37:30.797 回答