DBAtlas · Atlas de operações de banco de dados

23503: foreign_key_violation

PostgreSQL

O 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.

Abrir no DBAtlas →

Mais entradas deste banco