2012-03-19 29 views
0

我有如下表:SQL代碼INSERT同時多鍵的檢查重複

CREATE TABLE IF NOT EXISTS `customer_list` (
    `id` INT AUTO_INCREMENT, 
    `first_name` char(4) NOT NULL, 
    `last_name` varchar(80) NOT NULL, 
    `phone` varchar(50) NOT NULL, 
    `province` varchar(50) NOT NULL, 
    `country` varchar(30) NOT NULL, 
    `start_date` TIMESTAMP NOT NULL, 
    `end_date` TIMESTAMP NOT NULL, 
    PRIMARY KEY (id) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

我希望能夠插入到該表中,唯一的限制是名字,姓氏和電話不能一樣。如果它們相同,我想要返回一些錯誤來警告最終用戶該記錄已經存在 - 不執行插入/更新/替換操作。

這裏的關鍵是INSERT語句必須以某種方式檢查3個字段的重複。如果所有3個字段都重複,則只能返回錯誤。 IE瀏覽器。 3箇中的1個或2個被允許是重複的並且仍然被輸入。

這是可能的一個INSERT語句?

+0

[MySql的唯一約束](http://stackoverflow.com/questions/6679122/mysql-unique-constraint)的可能重複 – 2012-03-19 03:59:05

回答

1

嘗試:

alter table customer_list add unique index(first_name, last_name, phone); 
+0

這就是完美!謝謝。獨特的索引對我來說是新的,但我完全理解它。我不需要在INSERT中進行檢查。通過使這些列具有唯一性,一般的INSERT語句完成了這一切,並且我只捕獲這些錯誤。 – Vidarious 2012-03-19 22:45:31