DBAtlas · Atlas de operaciones de bases de datos

23503: foreign_key_violation

PostgreSQL

¿Qué significa?

Se violó una restricción FOREIGN KEY. La fila padre referenciada por la fila insertada/actualizada no existe, o la fila padre que se elimina aún tiene filas hijas dependientes.

¿Por qué ocurre?

Un INSERT/UPDATE que referencia una clave padre inexistente, un intento de eliminar/actualizar una fila padre que aún está referenciada o datos cargados en el orden incorrecto (primero el hijo, luego el padre).

Cómo solucionarlo

Inserte primero la fila padre y luego la fila hija. Si se necesita un comportamiento en cascada al eliminar, defina la restricción con ON DELETE CASCADE u ON DELETE SET NULL. En cargas masivas, cargue los datos en orden padre-hijo. Encuentre las filas que hacen referencia: SELECT * FROM child WHERE fk_column = value.

Abrir en DBAtlas →

Más entradas de este motor