sql数据库两个外键做联合主键

sql数据库两个外键做联合主键,第1张

lz的说法有误

主键不能建立在外键约束上,但是它可以建立在外键约束对应的列上。

所以你要做的就是对两个外键约束对应的列加复合主键

ALTER

TABLE

表名

WITH

NOCHECK

ADD

CONSTRAINT

[PK_表名]

PRIMARY

KEY

NONCLUSTERED

(

[字段名1],

[字段名2]

)

-----------------------------------

zjwssg解元同学

外键约束对应的列也可以是唯一键哎

设置默认值

alter

table

<表名>

add

<列名>

<默认值类型>

default

'<默认值>'

设置主键

alter

table

<表名>

add

constraint

<主键名>

primary

key(<列名>)

设置联合主键

alter

table

<表名>

add

constraint

<主键名>

primary

key(<列名1>,<列名2>,...,<列名n>)

约束

alter

table

<表名>

add

constraint

<约束名>

check

(<约束语句>)

在输入语句的时候<>是不需要

alter

table

add

constraint

pk_name

primary

key

(列1,列2,...)

联合主键的好处是不需要因为需要主键而增加一个无用的主键列

例如如果不用联合主键你必须增加个列ID设置主键

但这个ID列无任何作用

至于在什么情况下使用,就像刚才举例的,当你这个表的主键ID无任何用处,那么就用联合主键好了,你可以节约一个列的空间,但如果这表的ID列要做为别的表的外键的话,就不能用联合主键了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6778069.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存