Мне нужно добавить строку в таблицу базы данных MySQL, но только если строка еще не существует. Мой сервер базы данных просто спустился, поэтому я не могу проверить это, но будет ли это работать так, как ожидалось?Проверьте, существует ли строка, если она не добавлена [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')
Кажется, что звуковая логика. Является ли это допустимым запросом или есть лучший способ сделать это?
В SQL Server этот тип подхода даст вам условие гонки. Не уверен, что это верно и для MySQL. Это только этот конкретный запрос или вы всегда хотите обеспечить уникальность этих двух столбцов? –
То же самое с mysql - вы не можете изменить таблицу во время ее выбора –