gpt4 book ai didi

postgresql - 尴尬/错误的 PostgreSQL 外键定义

转载 作者:行者123 更新时间:2023-11-29 12:08:35 25 4
gpt4 key购买 nike

作为一名数据库开发人员,当我尝试将仅数据转储到 PostgreSQL(10.1) 数据库“tlesson”时,我遇到了这个通知。

通知=>

  pg_dump: NOTICE: there are circular foreign-key constraints on this table:
pg_dump: members

转储命令=>

  $ pg_dump -U postgres -d translesson -a 

'tlesson' 表 'members' 约束 =>

  ALTER TABLE ONLY members
ADD CONSTRAINT friend_fk FOREIGN KEY (friend_id) REFERENCES members(member_id);
  • 也就是说,'friend_id' 列引用自己表的主键作为外键。

我是否应该删除“friend_fk”约束以删除我收到的通知?

最佳答案

如果您总是删除整个数据库,那么这不是问题,因为生成的 SQL(或 pg_restore)将仅在加载所有数据后启用(创建)外键,所以在这种情况下没有问题。

但是,如果您只转储一个没有 FK 的表,那么只有在恢复之前手动删除 FK,然后再重新创建它,导入才会起作用。

原因是如果有循环引用,几乎不可能以正确的顺序生成 INSERT 语句

关于postgresql - 尴尬/错误的 PostgreSQL 外键定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48961831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com