首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PostgreSQL中删除具有外键的多个表?

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

Stack Overflow用户
提问于 2013-03-14 07:26:34
回答 2查看 11.3K关注 0票数 7

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

代码语言:javascript
复制
DROP TABLE foo, bar, baz;

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

  • Table1:来自Table2、Table3的外键,数据库中还有3个表。
  • Table2:从Table3中获取密钥,数据库中还有两个表。
  • Table3:从数据库中的另外3个表中获取密钥。

那我怎么才能放下这三张桌子呢?他们有表中的数据。上面的语法会忽略外键吗?数据库中的其他表中不应该有任何数据不一致。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-14 08:33:12

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

代码语言:javascript
复制
DROP TABLE foo, bar, baz CASCADE;
票数 22
EN

Stack Overflow用户

发布于 2013-03-14 07:37:30

通常,

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

如果有,最安全的放下这些表的方法是

第一次在那些桌子上放下违禁品-

代码语言:javascript
复制
ALTER TABLE table_name DROP CONSTRAINT "table_name_id_fkey";

然后一个一个地放下这些桌子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15403455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档