Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> UPDATE если запись существует, INSERT если нет, MySQL!!! 
:(
    Опции темы
HalkaR
Дата 2.1.2004, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 3
Всего: 42



Можно ли сделать одним выражением? Потому что использовать два запроса и одно условие не охота. Нельзя ли сделать что-то типа UPDATE IF (запись существует) ELSE INSERT?
PM MAIL   Вверх
Vit
Дата 2.1.2004, 21:15 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



В SQL Server можно примерно так:

If (Select count(*) from ... Where ...)=0
Insert ...
else
Update ...

Для MySQL скорее всего тоже можно но конкретный синтаксис надо смотреть в хэлпе, в некоторых базах есть ещё оператор Exists...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Cashey
Дата 3.1.2004, 01:36 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: нет
Всего: 60



По моему проще сделать так:

IF <поиск по индексу> then
Update ...
else
Insert ...



--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
HalkaR
Дата 3.1.2004, 02:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 3
Всего: 42



Vit, Cashey, там же русским языком написано MySQL!
PM MAIL   Вверх
HalkaR
Дата 3.1.2004, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 3
Всего: 42



Оператор exists есть, но он кажется только проверяет наличее таблицы. Есть if но он может только возвращать значения, а мне надо, чтоб выполнялось то либо иное действие.
PM MAIL   Вверх
Secandr
Дата 3.1.2004, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 6
Всего: 39



HalkaR Я так думаю придётся ждать новой версии MySQL. Они всё обещают сделать вложеные запросы и прочие удобности sad.gif


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Гость
Дата 5.1.2004, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 15.11.2003

Репутация: нет
Всего: 2



http://www.mysql.com/doc/en/INSERT.html
ON DUPLICATE KEY (new in MySQL 4.1.0)
например
mysql> INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
может поможет.

PM MAIL   Вверх
Dimetrius
Дата 13.1.2004, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 12.1.2004

Репутация: нет
Всего: 1



если я правильно понял, тебе нужен REPLACE.
Синтакс как у INSERT, только, прежде чем вставить, старая запись удаляется (если такая сушествует)
PM MAIL WWW   Вверх
GoodBoy
Дата 2.11.2004, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83





--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0657 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.