MySQL中的主鍵是用來唯一標識表中每一行數據的一個字段或一組字段,通常被用作表的索引。在某些情況下,我們需要使用兩個或多個字段的組合來唯一標識一行數據,這就需要設置復合主鍵。
CREATE TABLE `users` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(255) NOT NULL, `email` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`,`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在上面的例子中,我們使用了id和username兩個字段作為復合主鍵。在使用復合主鍵時,需要注意以下幾點:
- 復合主鍵中的每個字段都不能為空。
- 復合主鍵中每個字段的值必須唯一,但是兩個字段的組合可以重復。
- 定義在復合主鍵中的字段將被自動創建為索引。
如果需要改變復合主鍵,則需要先刪除原來的復合主鍵,再添加新的復合主鍵:
ALTER TABLE `users` DROP PRIMARY KEY; ALTER TABLE `users` ADD PRIMARY KEY (`username`, `email`);
在使用復合主鍵時,需要根據實際需求來選擇字段組合并設置合適的數據類型和大小,以保證數據一致和效率。