加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL中的外键表继承?

发布时间:2020-12-13 16:25:36 所属栏目:百科 来源:网络整理
导读:我有三个表:organization,organization_teams和org_users.这里organization_teams是从组织继承的.所以假设如果在organizational_teams中添加了一个记录,那么它将在organization_teams中将组织表id作为id列的值. org_users在组织的id列上有外键.现在,当我尝
我有三个表:organization,organization_teams和org_users.这里organization_teams是从组织继承的.所以假设如果在organizational_teams中添加了一个记录,那么它将在organization_teams中将组织表id作为id列的值.

org_users在组织的id列上有外键.现在,当我尝试在org_users中插入数据时,会给出如下错误

insert or update on table "org_users" violates foreign key constraint "org_users_organizations"
DETAIL:  Key (org_id)=(12) is not present in table "organizations"

为什么?

是 covered in the user manual.

简短版本:您可以使用外键或表继承,但不能同时使用.这并不是固有的不可能的,只是在技术上难以实现以快速,可靠的方式跨越PostgreSQL中的继承表的唯一索引.没有,你不能有一个有用的外键.没有人成功地实施了一个补丁,添加支持被PostgreSQL接受.

外键可以指向作为继承层次结构的一部分的表,但它只会在该表中找到行.不在任何父或子表中.要查看外键看哪些行,请执行SELECT * FROM ONLY表. ONLY关键字意味着“忽略继承”,这就是外键查找将会做的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读