23503: foreign_key_violation
PostgreSQLO que significa?
Uma constraint FOREIGN KEY foi violada. A linha pai referenciada pela linha inserida/atualizada não existe, ou a linha pai que está sendo excluída ainda tem linhas filhas dependentes.
Por que acontece?
Um INSERT/UPDATE referenciando uma chave pai inexistente, uma tentativa de excluir/atualizar uma linha pai que ainda é referenciada, ou dados carregados na ordem errada (primeiro o filho, depois o pai).
Como resolver
Insira primeiro a linha pai, depois a linha filha. Se for necessário comportamento em cascata na exclusão, defina a constraint com ON DELETE CASCADE ou ON DELETE SET NULL. Em cargas em massa, carregue os dados na ordem pai-filho. Encontre as linhas que fazem referência: SELECT * FROM child WHERE fk_column = value.