0

我有下表:

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;

我希望能够插入到这个表中,唯一的限制是 first_name、last_name 和 phone 不能相同。如果它们相同,我希望返回某种错误以警告最终用户记录已经存在 - 不执行插入/更新/替换操作。

这里的关键是 INSERT 语句必须以某种方式检查 3 个字段是否重复。仅当所有 3 个字段都重复时,才必须返回错误。IE。3 个中的 1 个或 2 个允许重复,仍然可以输入。

一个 INSERT 语句可以做到这一点吗?

4

1 回答 1

1

尝试:

alter table customer_list add unique index(first_name, last_name, phone);
于 2012-03-19T04:00:38.433 回答