在MySQL中,唯一約束和主鍵是非常重要的概念。
唯一約束保證了某列(或某幾列)的值必須唯一;主鍵則是一種特殊的唯一約束,要求在表中某列的每個值都是唯一的。
唯一約束使用UNIQUE關鍵字來定義,例如:
CREATE TABLE users ( id INT AUTO_INCREMENT, email VARCHAR(255) UNIQUE, name VARCHAR(255), PRIMARY KEY (id) );
上面的例子中,email列被定義為唯一約束,因此在此列中不能有兩個及以上的相同值。
主鍵可以在表中唯一地標識每一行數據,這通常用來獲取或修改數據行。主鍵可以是單個列或多個列的組合,并使用PRIMARY KEY關鍵字定義,例如:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, email VARCHAR(255) UNIQUE, name VARCHAR(255) );
上面的例子中,id列是表的主鍵,它使用AUTO_INCREMENT自動創建唯一的值。
盡管主鍵和唯一約束的目的相似,但它們之間仍有不同。主鍵允許NULL值,而唯一約束則不允許。另外,一個表只能有一個主鍵,而可以有多個唯一約束。
在使用MySQL時,根據需要和實際情況來選擇主鍵或唯一約束。