PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Erro de sintaxe no código de teste UPSERT


Como este é o principal resultado do Google para erros:
O comando
ON CONFLICT DO UPDATE command cannot affect row a second time

Acrescento que pode ser causado por um conflito duplicado VALUES , por exemplo.
INSERT INTO distributors (did, dname)
VALUES 
    (5, 'Gizmo Transglobal'), 
    (5, 'Associated Computing, Inc')
ON CONFLICT (did) DO UPDATE SET dname = EXCLUDED.dname;

Neste caso tentamos inserir dois valores com dim definido como 5 . Como dim é o índice ele não pode ter conflito na própria consulta.

Encontrei esse erro ao implementar o microsserviço e processar solicitações, algumas delas com registros duplicados.