Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Составить запрос / 7 сообщений из 7, страница 1 из 1
11.12.2006, 07:52
    #34188984
OlegA67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Составить запрос
Добрый день.
Ситуация следующая. Имеется некая таблица Table1 с первичным ключом по полу Fieldkey.
Как одним запросом, в замисимости от ситуации, либо добавить запись в таблицу
(INSERT INTO TABLE1 (fieldkey, field1, field2) VALUES (?keystring, ?string1, ?string2) )
либо обновить существующую запись
(UPDATE TABLE1 SET field1 = ?string1, field2 = ?string2 WHERE fieldkey = ?keystring )
Заранее спасибо.
...
Рейтинг: 0 / 0
11.12.2006, 08:05
    #34188991
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Составить запрос
Читайте про MERGE.
...
Рейтинг: 0 / 0
11.12.2006, 08:27
    #34189011
OlegA67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Составить запрос
в руководстве по
SQL Reference Volume 1 и Volume 2 про MERGE ничего не могу найти, может ткнете носом, где читать
...
Рейтинг: 0 / 0
11.12.2006, 08:31
    #34189016
Бабичев Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Составить запрос
Не можешь найти в документации - поищи примеры использования по форуму
...
Рейтинг: 0 / 0
11.12.2006, 09:55
    #34189153
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Составить запрос
...
Рейтинг: 0 / 0
18.12.2006, 18:24
    #34208516
OlegA67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Составить запрос
Подскажите как можно в параметре USING команды MERGE использовать данные из целевой таблицы. Имеется таблица pu.table_m с полями kod Integer, ts Timestamp, по полю kod создан первичный ключ. В следующей команде отрабатывается, только UPDATE
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
MERGE INTO  pu.table_m ar
  USING (SELECT * from pu.table_m where kod = 1 ) ac
   ON  (ar.kod = ac.kod)
   WHEN MATCHED THEN
      UPDATE SET 
         ts = current timestamp
   WHEN NOT MATCHED THEN
      INSERT 
         (kod, ts)
         VALUES  ( 1 , current timestamp);

во всех примерах , на которые были ссылки , используются две таблицы, а вот как вместо таблицы источника использовать переменные , буду очень признателен за разъяснения.
...
Рейтинг: 0 / 0
19.12.2006, 09:47
    #34209407
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Составить запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
merge into pu.table_m ar
using (values ( 1 , current timestamp)) v(kod, ts)
on ar.kod=v.kod
when matched then
 update set ar.ts=v.ts
when not matched then
 insert (kod, ts) values (kod, ts);
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Составить запрос / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]