聯(lián)合主鍵就是用2個(gè)或2個(gè)以上的字段組成主鍵。用這個(gè)主鍵包含的字段作為主鍵,這個(gè)組合在數(shù)據(jù)表中是唯一,且加了主鍵索引。
可以這么理解,比如,你的訂單表里有很多字段,一般情況只要有個(gè)訂單號(hào)bill_no做主鍵就可以了,但是,現(xiàn)在要求可能會(huì)有補(bǔ)
充訂單,使用相同的訂單號(hào),那么這時(shí)單獨(dú)使用訂單號(hào)就不可以了,因?yàn)闀?huì)有重復(fù)。那么你可以再使用個(gè)訂單序列號(hào)bill_seq來
作為區(qū)別。把bill_no和bill_seq設(shè)成聯(lián)合主鍵。即使bill_no相同,bill_seq不同也是可以的。
alter table 表 add constraint pk_name primary key (列1,列2,...)
聯(lián)合主鍵的好處是不需要因?yàn)樾枰麈I而增加一個(gè)無用的主鍵列 例如如果不用聯(lián)合主鍵你必須增加個(gè)列ID設(shè)置主鍵 但這個(gè)ID列
無任何作用 至于在什么情況下使用,就像剛才舉例的,當(dāng)你這個(gè)表的主鍵ID無任何用處,那么就用聯(lián)合主鍵好了,你可以節(jié)約
一個(gè)列的空間,但如果這表的ID列要做為別的表的外鍵的話,就不能用聯(lián)合主鍵了。
聯(lián)合主鍵就是確定一條記錄的唯一性啊
比如這種時(shí)候
商品品牌 商品型號(hào)
諾基亞 920
三星 NOTE2
諾基亞 8088
比如這樣商品品牌可能有重復(fù),都是諾基亞,但是諾基亞廠商生產(chǎn)的商品型號(hào)是不會(huì)重復(fù)的
也比如,可能好多品牌都有920這個(gè)型號(hào),但是一個(gè)品牌只有一個(gè)920的型號(hào)
所以就靠這樣的聯(lián)合主鍵來確定這條記錄的唯一性
建立方法如下
create table product(
pro_name varchar(20),
pro_type varchar(20),
primary key (pro_name,pro_type)
);
百度搜索的答案