Код 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;

Я хочу иметь возможность вставлять в эту таблицу с единственным ограничением, что first_name, last_name и phone не могут быть одинаковыми. Если они одинаковые, я хочу, чтобы возвращалась какая-то ошибка, чтобы предупредить конечного пользователя о том, что запись уже существует - действие вставки / обновления / замены не выполняется.

Ключевым моментом здесь является то, что оператор INSERT должен каким-то образом проверять 3 поля на предмет дублирования. Ошибка должна возвращаться, только если ВСЕ 3 поля являются дубликатами. IE. 1 или 2 из 3 могут быть дубликатами и могут быть введены.

Это возможно с одним оператором INSERT?

1 ответ

Решение

Пытаться:

alter table customer_list add unique index(first_name, last_name, phone);
Другие вопросы по тегам