В настоящее время я работаю над настройкой процедур загрузки из 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
?