Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
INSERT при выполнении условия (Jet) 12/12/2007 - 20:48:46
      Re: INSERT при выполнении условия (Ol) 19/01/2008 - 14:14:53

> Original message text:
> From: Jet - 12/12/2007 - 20:48:46
> Subject:INSERT при выполнении условия
> -----------------
> Заранее извиняюсь, если это где-то уже обсуждалось или вопрос бредовый.
>
> Задача стоит так:
> Если ([условие]) THEN [Выполнить INSERT]
> Это возможно не используя ХП?
>
> Я пытался соорудить приблизительно такую конструкцию, но не получается... Если это бред - то знатоки, так и ответьте чтобы было ясно что так нельзя.
>
> SELECT (
> CASE WHEN (1)
> THEN (INSERT INTO tbl (fld) VALUES ('my_value'))
> END
> ) result;
>
> Вот это, если вместо инсерта вставить любой литерал - работает.
> SELECT (CASE WHEN (1) THEN 'ok' END) result;
>
> В PostgreSQL точно есть функция EXECUTE(QUERY) и если бы её вставить сюда
> SELECT CASE WHEN (...) THEN EXECUTE(INSERT...) END;
> , то тоже должно работать и возвращать результат выполнения запроса или null, но я не нашёл такого.
>
> Гуру, подскажите пожалуйста! Или дайте хоть ссылочку где читать. Или хотя бы скажите, что это бред и нерешаемо. Спасибо.
>
> PS: Задачу я сильно утрировал поэтому, пожалуйста, не пытайтесь спрашивать, зачем мне это надо.
>


From: Ol - 19/01/2008 - 14:14:53
Subject:INSERT при выполнении условия
-----------------
Имхо нужно оставить Кесарю Кесарево.
Селекты нужны для выборки данных. ХП же как раз и придуманы для того, чтобы манипулировать данными.И сомневаюсь,что Execute (не только в PostgreSQL) будет так работать (в Oracle8 - точно нет).


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
32816



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |