powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Использование merge - можно ли одной командой
2 сообщений из 2, страница 1 из 1
Использование merge - можно ли одной командой
    #32185258
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вопрос к знатокам merge. Можно ли одной командой решить следующую задачу?

Есть две одинаковые таблицы - одна рабочая другая вспомогательная. Во вспомогательную ежедневно загружается информация из скачиваемых прайс листов. Затем надо в рабочей

1) добавить записи которые есть во вспомогательной но нет в рабочей
2) проапдейтить записи в рабочей которые во вспомогательной отличаются
3) удалить записи из рабочей если их нет во вспомогательной

Интересует именно merge

Код: plaintext
1.
truncate table table1;
insert into table1 select * from table2;


не предлагать!

Для основы возьмем пример из соседнего топика про merge. id ключ, value поле с информацией.

Код: plaintext
1.
2.
3.
4.
5.
MERGE INTO table1 a1
       USING (SELECT * 
                FROM table2) a2 
       ON (a1.id = a2.id)
       WHEN MATCHED THEN UPDATE SET a1.value = a2.value
       WHEN NOT MATCHED THEN INSERT (a1.id, a1.value) VALUES (a1.id, a1.value);


Задачи 1 и 2 этим решаются, можно как нибудь delete припоять для выполенения требования 3?
...
Рейтинг: 0 / 0
Использование merge - можно ли одной командой
    #32185266
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО нет. Интересно, что через MERGE ты не решишь и какую-то одну из задач 1 и 2. Только обе вместе:)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Использование merge - можно ли одной командой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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