SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.02.2011 20:42:12

gorod
Участник
Зарегистрирован: 22.02.2011
Сообщений: 1

Таблица с одной записью

Добрый день!
В базе есть таблица options. В ней должно быть не больше 1 записи. Как мне написать запрос обновляющий одно поле в этой таблице или вставляющий запись в эту таблицу, если она пуста? Никаких индексов в таблице нет и я их вставлять не могу. Поэтому ON DUPLICATE KEY UPDATE использовать нельзя.
Спасибо!

Неактивен

 

#2 23.02.2011 01:16:34

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Таблица с одной записью

Если никаких индексов нет, и Вы не хотите их добавлять, то прийдется
обеспечить сериализацию руками. Например, так:

Код:

LOCK TABLES options WRITE;      -- заблокировать таблицу
SELECT COUNT(*) FROM options;   -- посмотреть, есть ли строка
INSERT INTO options VALUES ...; -- добавить строку
UPDATE options SET ...;         -- или обновить — это надо решить в клиентском
                                -- приложении в зависимости от COUNT(*)
UNLOCK TABLES;                  -- разблокировать таблицы

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson