Как в postgresql я могу вставить значения при конфликте, одновременно регистрируя конфликтующие строки в другой таблице? - PullRequest
0 голосов
/ 29 января 2019

В настоящее время я работаю над настройкой процедур загрузки из python в postgres 9.5+.На данный момент поток таков:

python df ---> stg_table ---> prd_table ---> conflicts are logged into log_table

В настоящее время я тестирую вставки и ссылаюсь на все исследования, которые я видел, за исключением любых трудных вопросов, как показано здесь:

Как использовать RETURNING с ON CONFLICT в PostgreSQL?

Я использую следующий код с первичным ключом unique_id и определяю время попытки вставки:

INSERT INTO prd_table(col1,unique_id)
   SELECT * FROM stg_table ----all values in these tables have been lined up
   ON CONFLICT (unique_id) 
   DO UPDATE SET unique_id=EXCLUDED.unique_id RETURNING unique_id, now();

ЧтоЯ понимаю, что на данный момент я возвращаю все значения, которые были фактически обновлены.Если я прав, как бы я поступил наоборот?То есть, как мне извлечь все конфликтующие строки и вставить их в log_table?

...