Referencia técnica independienteSitio oficial
  • Software y sistemas
  • Base de datos

23000

PostgreSQL 23000 en base de datos: violación genérica de integridad

Verificada con fuentes2 fuentesRevisada 3 oct 2026
¿Viene un técnico? Mira los 2 pasos que debe enseñarte
Trace

Evidencia vinculada a esta decisión

Ver fuente: PostgreSQL 18 Appendix A: Error Codes

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

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

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

  1. Campos de objeto del error

    Sin herramientas especiales

    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

  2. Código en el registro del servidor

    Requiere herramientas

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

    PostgreSQL 18 Appendix A: Error Codes

    PostgreSQL Global Development Group · 2026 · official_doc

  2. 2

    PostgreSQL constraints

    PostgreSQL Global Development Group · 2026 · official_doc

Fuentes: PostgreSQL 18 Appendix A: Error Codes · PostgreSQL constraintsrevisado 2026-10-03 · verificado

¿Te ha resultado útil esta ficha?