Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Вставить запись, если такой нету за один запрос.


Автор: Boing747 2.5.2008, 20:25
Есть таблица tab1 d MySQL. У нее есть поле ID - autoincrement и val - число.
Хотелось бы написать запрос, чтобы если нету записи с определенным значением val, то запись добавлялась, иначе нет.

Пример:
INSERT INTO tab1 (val) VALUES (1);
INSERT INTO tab1 (val) VALUES (2);
INSERT INTO tab1 (val) VALUES (1);


После такого скрипта в базе должно быть две записи(две первых, что мы добавили, а третья не добавилась, т  к уже было поле с val = 1)
Возможно ли записать за один запрос?




Автор: skyboy 2.5.2008, 20:46
шаг 1. создать unique key на поле val
шаг 2. воспользоваться конструкцией insert ignore .... для подавления ошибок дублирования уникального ключа

Автор: Boing747 2.5.2008, 21:51
skyboy, Спасибо, помогло. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)