Удалить один из отделов, а сотрудника переместить в другой отдел
мне нужно написать запрос, который удаляет из таблицы "Справочник_отделов" один отдел, и обновляет запись в другой таблице "Оклад_сотрудников" (заменяет id удаленного отдела на другой, который выбрал я). Логика должна быть примерно такой -
DELETE FROM Справочник_отделов WHERE id = 2 UPDATE Оклад_сотрудников SET "ID Отдела"=3 WHERE "Табельный номер" = 1002);
я так понимаю, это составной запрос, и, по идее, должен использоваться оператор with
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
Лучше сначала обновить, а потом удалить. Не надо будет возиться с отложенной проверкой ограничений.
WITH
cte AS (
UPDATE employees
SET department_id = 3
WHERE department_id = 2
)
DELETE
FROM department
WHERE department_id = 2;
https://dbfiddle.uk/?rdbms=postgres_12&fiddle=2e1ed69c011f76ac8f2481ec4a523bfc