栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

外键引用PostgreSQL中的其他外键

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

外键引用PostgreSQL中的其他外键

外键约束不关心所引用的列是否在引用另一列本身。但是引用的列 必须 是唯一的。这就是错误消息告诉您的内容(非常清楚)。

您缺少的是外键约束可以基于
多个列
。这应该工作:

FOREIGN KEY (num, user_id, assignment_id) REFERENCES submission

更换:

~~FOREIGN KEY (num) REFERENCES submission(num),FOREIGN KEY (user_id) REFERENCES submission(user_id),FOREIGN KEY (assignment_id) REFERENCES submission(assignment_id)~~

语法(

REFERENCES submission
)的简短形式是可能的,因为您要引用主键,这是默认键。

另外,您可以简化:制作

submission.num
sinlge-
column主键,从中删除冗余列
user_id
,并将fk约束减小为just-如@Tim的答案中所述。
assignment_id``correction``(num)


只要您具有multicolumn fk约束,请考虑

NOTNULL
每个引用列上的约束(如@joop所述)。另外,引用列中的一个或多个NULL值允许使用默认
MATCHSIMPLE
行为来逃避fk约束。这可能是预期的,也可能不是预期的,通常 不是
或者,考虑
MATCH FULL
多列fk约束,以仅在 所有 引用列均为NULL的情况下才允许这样做。细节:

  • 完全匹配与简单匹配


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/670233.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号