Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день!
В базе есть таблица options. В ней должно быть не больше 1 записи. Как мне написать запрос обновляющий одно поле в этой таблице или вставляющий запись в эту таблицу, если она пуста? Никаких индексов в таблице нет и я их вставлять не могу. Поэтому ON DUPLICATE KEY UPDATE использовать нельзя.
Спасибо!
Неактивен
Если никаких индексов нет, и Вы не хотите их добавлять, то прийдется
обеспечить сериализацию руками. Например, так:
LOCK TABLES options WRITE; -- заблокировать таблицу SELECT COUNT(*) FROM options; -- посмотреть, есть ли строка INSERT INTO options VALUES ...; -- добавить строку UPDATE options SET ...; -- или обновить — это надо решить в клиентском -- приложении в зависимости от COUNT(*) UNLOCK TABLES; -- разблокировать таблицы
Неактивен