十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
数据库中的每张表只能有一个主键,不可能有多个主键。
创新互联专注于企业全网营销推广、网站重做改版、息县网站定制设计、自适应品牌网站建设、H5高端网站建设、购物商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为息县等各大城市提供网站开发制作服务。
主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。
所谓的一张表多个主键,我们称之为联合主键。
注:联合主键:就是用多个字段一起作为一张表的主键。
创建联合主键:
1、GUI中同时选中多列,点击设置为主键。
2、sql语句将多列设置为主键:
方法一:在建表时就写出
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]
)
可以,那叫复合主键
create table sc (
studentno int,
courseid int,
score int,
primary key (studentno,courseid) );
更详细的可以去搜复合主键的用法
主键只能有一个。
但是,如果你想用多个‘唯一索引’(unique index),是可以有多个的。
主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。
所谓的一张表多个主键,我们称之为联合主键。
可以由多个列形成联合主键,但是主键只能有一个
courseidint,
scoreint,primarykey(studentno) );
②修改时:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);
前提是原先没有设置主键。
2.外键语法①创建时:createtablesc (studentnoint,
courseidint,
scoreint,foreignkey(courseid) );②修改时:ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;
3.使用组合主键
如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式①创建时:createtablesc (studentnoint,
courseidint,
scoreint,primarykey(studentno,courseid) );
②修改时:alter table tb_name add primary key (字段1,字段2,字段3);