Добавить в корзинуПозвонить
Найти в Дзене
Oracle Developer

Решение задачи

Решение задачи. Update в PostgreSQL vs Oracle Друзья, всем привет! Сегодня разберем довольно простую задачку. Суть: написать update одной таблички с использованием другой. Полная постановка здесь. Итак Решение в Oracle 1️⃣ Через использование подзапроса update wallet w set configuration = ( select wt.default_configuration from wallet_template wt where wt.id = 6 ) where w.configuration is null; 2️⃣ Колхоз через Merge merge into wallet w using (select default_configuration from wallet_template where id = 6) wt on (1 = 1) when matched then update set w.configuration = nvl(w.configuration, wt.default_configuration); Решение в PostgreSQL 1️⃣ способ через подзапрос так же будет работать 2️⃣ Merge появился в PostgreSQL в 15й версии, поэтому вам может не подойти. 3️⃣ Расширенный SQL в PostgreSQL update wallet w set configuration = wt.default_configuration from wallet_template wt where wt.id = 6 and w.configuration is null; Да, немого не привычно, но удивляет своей лаконичностью. Хор

Решение задачи. Update в PostgreSQL vs Oracle

Друзья, всем привет!

Сегодня разберем довольно простую задачку. Суть: написать update одной таблички с использованием другой.

Полная постановка здесь.

Итак

Решение в Oracle

1️⃣ Через использование подзапроса

update wallet w

set configuration = (

select wt.default_configuration

from wallet_template wt

where wt.id = 6

)

where w.configuration is null;

2️⃣ Колхоз через Merge

merge into wallet w

using (select default_configuration from wallet_template where id = 6) wt

on (1 = 1)

when matched then

update

set w.configuration = nvl(w.configuration, wt.default_configuration);

Решение в PostgreSQL

1️⃣ способ через подзапрос так же будет работать

2️⃣ Merge появился в PostgreSQL в 15й версии, поэтому вам может не подойти.

3️⃣ Расширенный SQL в PostgreSQL

update wallet w

set configuration = wt.default_configuration

from wallet_template wt

where wt.id = 6

and w.configuration is null;

Да, немого не привычно, но удивляет своей лаконичностью.

Хорошо ли читается? Мой коллега на ревью запнулся об этот запрос 🤷🏻‍♂️

К вопросу о миграции с одной СУБД на другую.

Можно ли взять и перенести на изи запросы с Оракла в ПГ?

Что-то да, что-то нет. Merge, например, придется переписывать, если у вас не совсем актуальная версия PG.

Может быть вы знаете, какие-то другие варианты запросов? Напишите в чатике 💬

А вам какой синтаксис больше нравится?

Если Oracle - ставь 🔥

Если PostgreSQL - ставь 👍

Я, пожалуй, поставлю 👍

#postgresql #oracle #Denis_Kivilev #решениезадачи

Канал Oracle Developer | Чатик 💬

Мини-курс Оптимизация: Быстрый старт 🚀