數據庫中的每張表只能有一個主鍵,不可能有多個主鍵。
創(chuàng)新互聯專注于企業(yè)全網營銷推廣、網站重做改版、息縣網站定制設計、自適應品牌網站建設、H5高端網站建設、購物商城網站建設、集團公司官網建設、成都外貿網站建設、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為息縣等各大城市提供網站開發(fā)制作服務。
主鍵的作用是保證數據的唯一性和完整性,同時通過主鍵檢索表能夠增加檢索速度。
所謂的一張表多個主鍵,我們稱之為聯合主鍵。
注:聯合主鍵:就是用多個字段一起作為一張表的主鍵。
創(chuàng)建聯合主鍵:
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.外鍵語法①創(chuàng)建時: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.使用組合主鍵
如果一列不能唯一區(qū)分一個表里的記錄時,可以考慮多個列組合起來達到區(qū)分表記錄的唯一性,形式①創(chuàng)建時:createtablesc (studentnoint,
courseidint,
scoreint,primarykey(studentno,courseid) );
②修改時:alter table tb_name add primary key (字段1,字段2,字段3);