Обновить поле в таблице в базе данных 1 из внешней идентичной базы данных 2 - PullRequest
1 голос
/ 08 июля 2020

Чтобы сохранить этот снимок.

Я хотел бы обновить поле product_price со всеми ценами, которые я храню во внешней демонстрационной таблице.

Я попытался использовать следующий запрос, но он выдает ошибку

UPDATE dest
SET product_price = src.product_price
FROM DB2.trades AS dest
INNER JOIN DB1.trades AS src
ON dest.KEY = src.KEY
--And KEY = '12323';

Не могли бы вы помочь, как это сделать?

1 Ответ

0 голосов
/ 08 июля 2020

Предполагая, что обновляемая таблица находится в базе данных DB2, а «внешняя» таблица находится в другой базе данных (DB1), вам нужно создать ссылку базы данных на DB1 (назовем ее dbl_db1) и ссылаться на ее таблицу. как trades@dbl_db1. Примерно так:

update trades d set
  d.product_price = (select s.product_price
                     from trades@dbl_db1 s
                     where s.key = d.key
                    )
where exists (select null from trades@dbl_db1 a
              where a.key = d.key
             );

Или, используя MERGE:

merge into trades d
  using trades@dbl_db1 s
  on (s.key = d.key)
  when matched then update set
    d.product_price = s.product_price;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...