синхронизировать данные между двумя таблицами базы данных postgres - PullRequest
1 голос
/ 03 июля 2019

У меня есть таблица A db1 и таблица B db2 я хочу вставить только несуществующие строки из таблицы A в таблицу B, и если данные уже существуют в таблице B, обновите их. Каков наилучший способ сделать это? У меня есть сотни строк для вставки и обновления и много таблиц. Я использую dbvisualizer. Спасибо.

1 Ответ

0 голосов
/ 03 июля 2019

Один метод использует подзапрос not exists.Примерно так:

insert into b (col1, . . . )
    select col1, . . . 
    from a
    where not exists (select 1 from b where b.? = a.?);

Есть и другие способы.Если у вас есть unique ограничение / индекс для b, который определяет уникальность, тогда вы можете вместо этого использовать предложение on conflict.Если вы пытаетесь предотвратить дублирование, то ограничение / индекс unique является правильным решением.

...