Как выполнить вставку записи с проверкой того, что такой записи нет в таблице (MySQL)? - CodeHelper

Как выполнить вставку записи с проверкой того, что такой записи нет в таблице (MySQL)?

2

Нужно запросом вставить запись в таблицу MySQL и при этом проверить что идентичной записи еще нет в таблице. Обычные SQL вещи типа

IF NOT EXISTS (SELECT * FROM table WHERE field = 'field')

не работают, так как они оператор IF разрешен только внутри хранимых процедур. Как решить эту задачу?

Новые ответы


1

Ну если есть уникальный ключ, то можно воспользоваться синтаксисом синтаксисом INSERT ... ON DUPLICATE KEY UPDATE. Как то так:

INSERT table SET field = 'field'
ON DUPLICATE KEY 
UPDATE time=NOW()

Вот пример посложнее:

INSERT INTO myUserTable (userId,email,gtalk) 
VALUES(233,'first@first.com','insert_query') 
ON DUPLICATE KEY 
UPDATE email='test@test.com',gtalk='update_query';

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.