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

标签 sql postgresql sql-drop

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

DROP TABLE foo, bar, baz;

但在我的例子中,3 个表在它们之间有外键,并且与其他表不被删除。

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

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

最佳答案

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

DROP TABLE foo, bar, baz CASCADE;

关于sql - 如何在 PostgreSQL 中删除具有外键的多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15403455/

相关文章:

mysql - sql 查询返回所需数据量的两倍

sql - 为什么此语句仅适用于WHERE?

mysql - SQL:了解 WHERE 子句中的 OR 运算符

sql - 插入选择不同的空 PostgreSQL

sql - PostgreSQL :how to refer to table which has multiple unique primary key

mysql - 在 mysql 中重命名具有外键约束的列 - 无论如何都可以使其更容易?

php - 删除表列

sql - 强制 SQL Server 删除数据库

MYSQL group by in subquery 但需要所有数据

Postgresql - 将数据从一列拆分为两列