MySQL中的唯一索引是一種可以在表中用來保證數據唯一性的方法。而多個字段的唯一索引是指一個索引同時包含了多個字段的信息。當你把多個字段結合起來作為一個唯一索引的時候,就可以保證這些字段的組合值是唯一的。
使用唯一索引的好處在于,它可以大大提高查詢性能。因為唯一索引可以快速地定位到需要查詢的那條數據。而多個字段的唯一索引則可以保證更細粒度的唯一約束。
CREATE TABLE `users` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(20), `age` INT, `address` VARCHAR(100), UNIQUE KEY `name_age_address`(`name`,`age`,`address`) );
上面的代碼就創建了一個包括id,name,age和address等字段的用戶表,并且給name,age和address三個字段添加了一個名為name_age_address的唯一索引。這個索引將所有三個字段結合在一起作為唯一索引值。
使用多個字段的唯一索引可以避免插入重復數據的情況出現。例如,如果你使用name_age_address做唯一索引,那么就可以添加一條如下的記錄:
INSERT INTO `users`(`name`,`age`,`address`) VALUES ('Tom', 25, 'Shanghai');
而如果你再次嘗試插入一條相同的記錄,就會出現錯誤提示:
INSERT INTO `users`(`name`,`age`,`address`) VALUES ('Tom', 25, 'Shanghai'); ERROR 1062 (23000): Duplicate entry 'Tom-25-Shanghai' for key 'name_age_address'
這說明你的唯一索引已經成功保證了數據的唯一性。