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