Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2011, 23:32   #1
Leximus
Пользователь
 
Регистрация: 18.09.2010
Сообщений: 85
По умолчанию Запрос на обновление или добавление!

Приветствую!

Мне нужно сделать запрос, который сначало проверит, есть ли строка, и если есть то обновит её, если нету то добавит.
Работать должно под MySQL

Вот получается что то типо этого

IF (SELECT param FROM config WHERE id =5) IS NULL THEN
INSERT INTO config (id, param) VALUES (5, 1)
ELSE
UPDATE config SET param = 1 WHERE id =5
END IF;

Что в этом запросе может быть не верно? А то запрос типо этого ошибку выдаёт.
Leximus вне форума Ответить с цитированием
Старый 15.11.2011, 00:10   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

EXISTS же есть в MYSQL
Код:
IF not exists (SELECT param FROM config WHERE id =5) THEN ...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.11.2011, 01:53   #3
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
EXISTS же есть в MYSQL
Код:
IF not exists (SELECT param FROM config WHERE id =5) THEN ...
Такое в mysql без ХП не прокатит, зато есть конструкция

Код:
INSERT INTO `table` (`key_column`, `column`) VALUES (1, 'string')
ON DUPLICATE KEY UPDATE `column` = 'string'
Только таблица должна иметь Primary Key или Unique key, значение которого (есть оно или нет) будете передаваться в запрос

P.S. Вообще в вашем запросе ошибка в том, что вы в конце строк с Insert ... и Update ... не ставите точку с запятой
Cronos20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запрос на обновление!!!!! Andel 013 Microsoft Office Access 2 23.12.2010 23:06
Запрос на обновление Andrey118 Microsoft Office Access 0 09.12.2010 20:55
запрос на обновление ww01031977 Microsoft Office Access 1 30.04.2010 16:07
запрос на обновление warshadow Microsoft Office Access 13 03.10.2009 16:56
Добавление и обновление в БД не всегда Jensi PHP 8 25.03.2009 15:04