MySQL 是一個(gè)常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其中表是數(shù)據(jù)存儲(chǔ)的基本單位。每個(gè)表都有一個(gè)主鍵,這個(gè)主鍵用來唯一標(biāo)識(shí)一行數(shù)據(jù)。但是,在某些情況下,一個(gè)表需要有多個(gè)主鍵,這時(shí)候 MySQL 可以支持一個(gè)表有幾個(gè)主鍵,下面我們就來看看這個(gè)如何使用。
CREATE TABLE `table_name` ( `column1` int(11) NOT NULL, `column2` varchar(255) NOT NULL, PRIMARY KEY (`column1`,`column2`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
上面的代碼是創(chuàng)建一個(gè)表,這個(gè)表的主鍵不止一個(gè)。在創(chuàng)建表的時(shí)候,主鍵的解決方案就是通過 PRIMARY KEY 關(guān)鍵字來指定。在這個(gè)例子中,我們通過 column1 和 column2 來定義了這個(gè)表的主鍵。
當(dāng)一個(gè)表需要有多個(gè)主鍵時(shí),我們可以使用聯(lián)合主鍵,就是同時(shí)指定多個(gè)字段作為主鍵。在這個(gè)例子中,column1 和 column2 一起構(gòu)成了主鍵,也就是說,這個(gè)表中的每一行數(shù)據(jù)都有唯一的 column1 和 column2 組合。
SELECT * FROM `table_name` WHERE `column1`=1 AND `column2`='A';
在查詢和使用多個(gè)主鍵的時(shí)候,也需要注意。在 WHERE 語句中,也需要同時(shí)指定多個(gè)主鍵才能正確篩選出唯一的一行數(shù)據(jù)。
總結(jié)一下,MySQL 可以支持一個(gè)表有幾個(gè)主鍵,這可以通過聯(lián)合主鍵來實(shí)現(xiàn)。聯(lián)合主鍵可以是多個(gè)字段組合而成,在使用時(shí)需要注意同時(shí)指定多個(gè)主鍵才能正確操作數(shù)據(jù)。