联合主键是有着特殊的需求的。
建表的时候创建
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3…………
字段名N………… )
或者
建表之后修改表结构
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
这个不是哦 int bitgint tyniint 都可以 char vchar nvchar 也可以 mssql 的话 主键还可能是guid
datetime都可以
事实上只要是能有明显的 最大长度的变量都可以成为主键
主键:表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义
PRIMARY
KEY
约束来创建主键。一个表只能有一个
PRIMARY
KEY
约束,而且
PRIMARY
KEY
约束中的列不能接受空值。由于
PRIMARY
KEY
约束确保唯一数据,所以经常用来定义标识列。
外键
(FK)
是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键
还是去看一下基础知识吧
A表必须有记录,B表才能有,这个时候A表是主键表,B表外键表。(A表里面的记录可以随便录入,但一般必须唯一,是主键;B表里面录入的东西就不是乱录了,必须A表里面有的记录,才能录入到B表中。B表里面出现的任何一条记录都必须在A表中找到与之对应的记录,当然它可以重复出现,如果是1:N的话)
例如:学生表,成绩表。学生表里面必须有某个学生的信息,成绩表里面才可能有这个学生的成绩。这个时候学生表示主键表,成绩表示外键表。如果学生表中一个学生都没有,成绩表里面也不能有,但是反之则可以。
一句话,主键表限制外键表的数据。谁限制谁主键,谁被限制谁外键。
以上就是关于sql数据库两个外键做联合主键全部的内容,包括:sql数据库两个外键做联合主键、在数据库中,主键和外键都必须是整数吗、数据库的主键是怎么回事等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)