merge into

Есть ли в постгре команда merge into ... ?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Судя по мануалу нет, возможно

Судя по мануалу нет, возможно есть аналог, если вы опишете что она делает можно поискать.

в Оракле есть: Use the MERGE

в Оракле есть:
Use the MERGE statement to select rows from one or more sources for update or insertion into a table or view. You can specify conditions to determine whether to update or insert into the target table or view.

This statement is a convenient way to combine multiple operations. It lets you avoid multiple INSERT, UPDATE, and DELETE DML statements.

MERGE is a deterministic statement. That is, you cannot update the same row of the target table multiple times in the same MERGE statement.

пример:
MERGE INTO bonuses D
USING (SELECT employee_id, salary, department_id FROM employees
WHERE department_id = 80) S
ON (D.employee_id = S.employee_id)
WHEN MATCHED THEN UPDATE SET D.bonus = D.bonus + S.salary*.01
DELETE WHERE (S.salary > 8000)
WHEN NOT MATCHED THEN INSERT (D.employee_id, D.bonus)
VALUES (S.employee_id, S.salary*0.1)
WHERE (S.salary <= 8000);

Цитата:в Оракле есть: Ииии,

Цитата:
в Оракле есть:

Ииии, батенька, хватили! В Оракле много чего есть :)

Я понял так, что MERGE позволяет выполнить INSERT в случае если такой записи нет и UPDATE если такая запись есть. Нет, такой вещи в PostgreSQL насколько я знаю нет.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023