Continuar una transacción después del error de violación de clave principal

Estoy haciendo una inserción masiva de registros en una base de datos desde un archivo de registro. Ocasionalmente (~ 1 fila de cada mil) una de las filas viola la clave principal y hace que la transacción falle. Actualmente, el usuario debe revisar manualmente el archivo que causó la falla y eliminar la fila infractora antes de intentar volver a importar. Dado que hay cientos de estos archivos para importar, no es práctico.

Mi pregunta: ¿Cómo puedo omitir la inserción de registros que violarán la restricción de clave principal, sin tener que hacer unSELECT declaración antes de cada fila para ver si ya existe?

Nota: Soy consciente de una pregunta muy similar.# 1054695, pero parece ser una respuesta específica de SQL Server y estoy usando PostgreSQL (importando a través de Python / psycopg2).

Respuestas a la pregunta(4)

Su respuesta a la pregunta