Используя PHP, я вставляю запись в базу данных MySQL. Если запись новая, я получаю insert_id, но если она уже существует, я не могу получить идентификатор с помощью одного запроса.
Оба следующих запроса позволяют мне добавить запись или пропустить, если она уже существует:
INSERT INTO `emails` (`email`) VALUE ('abc@example.com') ON DUPLICATE KEY UPDATE `id`=`id`
INSERT IGNORE INTO `emails` (`email`) VALUE ('abc@example.com')
Как правильно получить правильный результат в обоих случаях?
РЕДАКТИРОВАТЬ: Вот мой синтаксис таблицы:
CREATE TABLE `emails` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;