Проверьте, существует ли строка, если нет, добавьте ее [MySQL] - PullRequest
0 голосов
/ 09 февраля 2011

Мне нужно добавить строку в таблицу базы данных MySQL, но только если строка еще не существует.Мой сервер базы данных просто вышел из строя, поэтому я не могу проверить это, но будет ли это работать так, как ожидалось?

INSERT INTO `blocks` (`block_file`,`settings_group`)
VALUES ('announcements','announcement_settings')
WHERE NOT EXISTS (SELECT `block_file`,`settings_group`
                  FROM `blocks`
                  WHERE `block_file`='announcements' AND `settings_group`='announcement_settings')

Это похоже на звуковую логику.Это правильный запрос или есть лучший способ сделать это?

1 Ответ

3 голосов
/ 09 февраля 2011

Просто создайте УНИКАЛЬНЫЙ индекс для (block_file,settings_group) столбцов, и MySQL никогда не позволит вам вставить строку, которая дублирует эти значения.

И чтобы ответить на вопрос: нет, он вообще не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...