
建立联合主键有两种方式:
一种是在建表时就写出,语句如下:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3????
字段名N???? )
另一种是在建表后更改,语句如下:
alter table 你的表名 add constraint pk_你的表名 primary key (字段1,字段2)
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
创建联合主键还可以这样写:
create table huayunkeji_today(device_id int , year int, month int, day int, hour int, temperature float, humidity float,
primary key(device_id,year,month,day,hour))
扩展资料:
联合主键的使用情况及优点:
联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引。
可以这么理解,比如,你的订单表里有很多字段,一般情况只要有个订单号bill_no做主键就可以了,但是,现在要求可能会有补充订单,使用相同的订单号,那么这时单独使用订单号就不可以了。
再使用个订单序列号bill_seq来作为区别。把bill_no和bill_seq设成联合主键。即使bill_no相同,bill_seq不同也是可以的。
联合主键的设置方法:打开navicat工具,连接上mysql服务器,选择完数据库之后,选择一个表右击选择设计表(这里为了演示测试,随便选择一个表即可)。
在设计表页面,可以看到当前表的所有字段信息,我们选择的学生表有一个id字段,目前该表没有主键字段。
在最后一列右击选择主键,即可将该字段设置为主键,也可以直接点击鼠标左键,可以快速添加和取消主键。
设置完主键之后,可以看到一把锁的标识,并且有一个1字,因为一个表可以给多个字段添加主键,则为联合主键,这样就显示为主键1,主键2等。
不能。如果一个或多个列值为null,那么就无法确切地确认唯一的组合值,从而无法执行数据的唯一性约束,因此,在设计表结构时,应该避免在联合主键中使用可为空的列。在关系型数据库中,联合主键是由多个列组成的主键,每个组合值在表中必须是唯一的,而且每个列都不能为空,因为空值不是唯一的,也不足以标识一个记录。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)