MySQL 中的複合主鍵是指表中由多個欄位組合而成的主鍵,用來唯一標識每筆記錄。與單一主鍵不同的是,複合主鍵由多個欄位的值組合在一起形成。在建立表格的時候,可以透過指定多個欄位為主鍵來定義複合主鍵。
為了示範複合主鍵的定義與作用,我們先建立一個名為users
的表,其中包含了id
、username
和email
這三個字段,其中id
是自增主鍵,username
是使用者名稱,email
是使用者郵箱。我們將透過 username
和 email
這兩個欄位組合在一起作為複合主鍵。
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, PRIMARY KEY(username, email) );
上面的程式碼中,透過在CREATE TABLE
語句中使用PRIMARY KEY(username, email)
來定義了複合主鍵,將username
和email
這兩個欄位組合在一起作為唯一識別。
接下來我們在表中插入一些數據,注意由於複合主鍵的存在,每筆記錄的 username
和 email
組合必須是唯一的。
INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com'); INSERT INTO users (username, email) VALUES ('bob', 'bob@example.com');
如果我們再試著插入一條username
和email
都與先前記錄相同的數據,就會觸發唯一性限制的錯誤:
INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com'); -- 輸出錯誤:Duplicate entry 'alice@example.com' for key 'PRIMARY'
這就是複合主鍵的作用之一,確保表中每筆記錄的組合欄位值都是唯一的,避免數據重複。
在實際應用中,複合主鍵可以在資料表設計中更精確地控制資料的完整性。當資料庫中的記錄需要透過多個欄位來唯一識別時,複合主鍵可以提供更好的資料完整性保障。同時,在一些查詢以及表格關聯操作中,複合主鍵也有其特殊的用途,能夠幫助提高查詢效率和準確性。
總結起來,MySQL 中的複合主鍵是由多個欄位組合而成的主鍵,用來唯一標識每筆記錄。透過範例展示如何定義複合主鍵,以及其在資料完整性和查詢效率方面的作用,希望能對理解複合主鍵有所幫助。
以上是MySQL 複合主鍵的定義與作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!