我知道删除多个表的语法是:
DROP TABLE foo, bar, baz;
但在我的情况下,3个表之间有外键,其他表不被删除。
- 表 1:表 2、表 3、数据库中另外 3 个表的外键。
- 表 2:外键 来自表 3,数据库中还有 2 个表。
- 表 3:外键来自数据库中的另外 3 个表。
那么我怎样才能删除这 3 个表呢?他们在表格中有数据。上面的语法会忽略外键吗?数据库中其他表不应该有任何数据不一致。
我知道删除多个表的语法是:
DROP TABLE foo, bar, baz;
但在我的情况下,3个表之间有外键,其他表不被删除。
那么我怎样才能删除这 3 个表呢?他们在表格中有数据。上面的语法会忽略外键吗?数据库中其他表不应该有任何数据不一致。
您可以使用以下关键字告诉 Postgres 自动删除引用这些表的所有外键cascade
:
DROP TABLE foo, bar, baz CASCADE;
通常,
如果 Table1、Table2 和 Table3 的主键在数据库中的任何其他表中被称为外键,您将有可能出现不一致。
如果你有,删除这些表的最安全方法是
首先通过 -
ALTER TABLE table_name DROP CONSTRAINT "table_name_id_fkey";
然后一一删除这些表。