在MySQL中,一張表只能有一個(gè)主鍵。但是,有時(shí)候我們需要根據(jù)不同的需求來建立多個(gè)主鍵。在這種情況下,我們可以使用聯(lián)合主鍵的方式來實(shí)現(xiàn)多個(gè)主鍵的需求。
聯(lián)合主鍵可以由兩個(gè)或多個(gè)列構(gòu)成。這些列的組合必須是唯一的,以滿足主鍵的要求。
CREATE TABLE example (
id1 INT,
id2 INT,
name VARCHAR(30),
PRIMARY KEY (id1, id2)
);
在上面的例子中,我們創(chuàng)建了一個(gè)名為example的表,它有兩個(gè)列id1和id2。我們把它們組合在一起來作為主鍵。
當(dāng)我們?cè)诓樵儭⒏禄騽h除數(shù)據(jù)時(shí),我們必須使用所有聯(lián)合主鍵列來確定唯一的行。
SELECT * FROM example WHERE id1 = 1 AND id2 = 2;
UPDATE example SET name = 'John' WHERE id1 = 1 AND id2 = 2;
DELETE FROM example WHERE id1 = 1 AND id2 = 2;
使用聯(lián)合主鍵的好處是,我們可以允許多個(gè)重復(fù)值存在于一個(gè)主鍵列中,因?yàn)橹灰M合在一起的值是唯一的,就可以成為一個(gè)有效的主鍵。
對(duì)于在MySQL中使用多個(gè)主鍵碼的需求,我們可以使用聯(lián)合主鍵來滿足我們的要求,以更好地管理我們的數(shù)據(jù)。