- Software y sistemas
- Base de datos
23000
PostgreSQL 23000 en base de datos: violación genérica de integridad
Evidencia vinculada a esta decisión
Ver fuente: PostgreSQL 18 Appendix A: Error CodesNivel de riesgo
Precaución
Actúa con cuidado; puede requerir técnico si persiste.
Urgencia
Media — atiéndelo hoy
Respuesta rápida
La operación incumple una regla de integridad que no tiene un código más específico. Revisa los campos de restricción, tabla y columna del error para saber qué regla es y corrige el dato enviado.
Seguridad primero
Antes de continuar
- No desactives restricciones ni triggers para que la fila entre: la regla protege la coherencia de los datos.
Puedes hacerlo con seguridad
- Campos de objeto del error
- Código en el registro del servidor
Deja estas tareas a un profesional cualificado
- No intentes esta tarea profesional: Conservar el código específico en la aplicación
- No intentes esta tarea profesional: Corregir el dato o la regla
Lo que un técnico debe poder justificar
Viene un técnico
Estos son los pasos que tiene que hacer y enseñarte. Márcalos mientras trabaja: si se salta pasos, no aceptes el cambio de pieza.
No son instrucciones para que abras o manipules el equipo. Son las comprobaciones que deben sostener una conclusión técnica.
Conservar el código específico en la aplicación
Qué haceEl equipo revisa que la capa de acceso a datos no sustituya el SQLSTATE original por 23000.
Te tiene que enseñarel error tal como llega del servidor.
Por escritola corrección.
Corregir el dato o la regla
Qué haceEl desarrollador corrige el dato que incumple la regla o, si la regla cambió, prepara una migración revisada.
Te tiene que enseñarla regla y el dato que la incumple.
Por escritoel cambio y su aprobación.
Antes de aceptar una pieza o reparación
Aún no ha demostrado nada. No aceptes un cambio de pieza solo por el código.
Sigue estos pasos
Aviso: Sigue el orden documentado. Un código identifica el sistema afectado, pero por sí solo no demuestra qué pieza está averiada.
Campos de objeto del error
- Quién:
- tú, como desarrollador.
- Cómo:
- lee Schema (s), Table (t), Column (c) y Constraint (n) en el error que devuelve tu driver.
- Resultado que importa:
- qué tabla y qué regla aparecen.
- Si aparece una restricción:
- confirma qué regla se incumplió; lee su definición.
- Si no aparece ninguno:
- pasa al registro del servidor; la documentación avisa de que la presencia de un campo no garantiza la de otro.
- Evidencia a conservar:
- campos del error y hora.
Evidencia: PostgreSQL 18 Appendix A: Error Codes · PostgreSQL error and notice fields
Código en el registro del servidor
- Quién:
- el DBA o administrador.
- Cómo:
- busca la misma sentencia y hora en el registro del servidor.
- Resultado que importa:
- si el servidor registró un código más concreto que 23000.
- Si registró otro código de la clase 23:
- confirma que la aplicación generaliza; sigue la ficha de ese código.
- Si registró 23000:
- confirma una regla sin código específico.
- Evidencia a conservar:
- extracto del registro.
Solo con acceso al servidor; si no lo tienes, no lo hagas con cuentas ajenas. No compartas registros con datos personales.
Evidencia: PostgreSQL 18 Appendix A: Error Codes
Situación no resuelta
Si el error persiste, no sigas probando por tu cuenta. Mira qué tiene que hacer y enseñarte el técnico.
Técnico virtual
¿Sigue apareciendo 23000 tras comprobarlo?
Este recorrido usa el código exacto y tus respuestas para elegir una prueba, su resultado esperado y la siguiente bifurcación.
Dónde se aplica este código
Un código solo tiene significado dentro del producto y la versión correctos.
Ámbito principal
- Sistema
- Software y sistemas
- Marca
- PostgreSQL
- Tipo de producto
- Base de datos
Variantes conocidas del código
- integrity_constraint_violation
- PostgreSQL 23000
- SQLSTATE 23000
Qué significa
El apéndice A asigna 23000 a integrity_constraint_violation, el código estándar de la clase 23. Según la documentación, el código terminado en 000 se usa solo cuando la condición pertenece a la clase y no hay un código más concreto; los casos habituales tienen el suyo, como 23502 para nulos, 23503 para claves foráneas, 23505 para duplicados o 23514 para CHECK. Para esta clase el servidor incluye el nombre del objeto en campos separados. El código no dice qué regla falló; esos campos sí.
Advertencias y condiciones de parada
- Precauciónadvertencia editorial
No desactives restricciones ni triggers para que la fila entre: la regla protege la coherencia de los datos.
Evidencia: PostgreSQL constraints
Síntomas y causas
Causas probables · en orden
- Regla sin código específicoConfirmada
La restricción incumplida no corresponde a ninguno de los códigos concretos de la clase 23. Los campos del error indican cuál es.
Evidencia: PostgreSQL 18 Appendix A: Error Codes
- Capa intermedia que generaliza el códigoPosible
Algunos componentes del cliente agrupan los errores de integridad bajo 23000. Se distingue porque el registro del servidor muestra un código más específico para la misma sentencia.
Evidencia: PostgreSQL error and notice fields
Fuentes y referencias técnicas
- 1
PostgreSQL 18 Appendix A: Error Codes
PostgreSQL Global Development Group · 2026 · official_doc
- 2
PostgreSQL Global Development Group · 2026 · official_doc
¿Te ha resultado útil esta ficha?