Référence technique indépendanteSite officiel
  • Logiciels et services numériques
  • Base de données

23505

PostgreSQL 23505 : violation d’une contrainte unique

Vérifiée à l’aide de sources2 sourcesRévisée 22 août 2026
Un technicien vient ? Ce qu'il doit vous montrer

Niveau de risque

Faible

Peut généralement être contrôlé sans outil spécialisé.

Urgence

Modérée

Réponse rapide

SQLSTATE 23505 correspond à unique_violation. Un INSERT ou UPDATE a tenté de créer une combinaison de valeurs en conflit avec une contrainte ou un index unique.

La sécurité avant tout

Avant de continuer

  • Ne supprimez ni lignes ni contrainte unique comme correction générique. Identifiez d’abord la règle nommée et le comportement de conflit attendu.

Vérifications que vous pouvez effectuer sans danger

  • Capturer tous les champs de l’erreur
  • Inspecter la règle d’unicité nommée
  • Distinguer doublon invalide et conflit attendu

Confiez ces interventions à un professionnel qualifié

  • N’essayez pas d’effectuer cette intervention professionnelle: Réviser le chemin d’écriture et la concurrence

Ce qu’un technicien doit pouvoir justifier

Visite technicien

Voici les étapes qu'il doit réaliser et vous montrer. Cochez-les pendant son travail : s'il en saute, n'acceptez pas le remplacement.

Il ne s’agit pas d’instructions pour ouvrir ou manipuler vous-même l’appareil, mais des contrôles qui doivent étayer une conclusion technique.

  1. Réviser le chemin d’écriture et la concurrence

    Ce qu'il faitUn spécialiste base de données doit examiner transactions clés d’idempotence cibles de conflit et règle métier quand 23505 se répète sous charge.

Avant d'accepter une pièce ou une réparation

Rien n'a encore été démontré. N'acceptez pas un remplacement sur la seule base du code.

Suivez ces étapes

Remarque: Suivez l’ordre documenté. Un code identifie le système concerné, mais ne prouve pas à lui seul qu’une pièce précise est défectueuse.

  1. Capturer tous les champs de l’erreur

    Outils nécessaires

    Conservez SQLSTATE 23505 avec le nom de la contrainte la table et le détail fourni par le pilote. Ne diagnostiquez pas avec le seul numéro.

    Masquez données de production et identifiants avant de partager les journaux.

    Justification: PostgreSQL current error codes appendix

  2. Inspecter la règle d’unicité nommée

    Outils nécessaires

    Vérifiez les colonnes ou expressions protégées par la contrainte ou l’index nommé et comparez la clé proposée à la ligne existante.

    Ne supprimez pas la règle d’unicité uniquement pour faire disparaître l’exception.

    Justification: PostgreSQL current error codes appendix

  3. Distinguer doublon invalide et conflit attendu

    Outils nécessaires

    Corrigez les données invalides à la source. Pour une opération idempotente ou un upsert définissez précisément DO NOTHING ou DO UPDATE et sa cible de conflit.

    Une gestion trop large peut masquer un défaut réel de qualité des données.

    Justification: PostgreSQL current INSERT and ON CONFLICT documentation

Problème non résolu

Si l'erreur persiste, arrêtez-vous ici. Voir ce que le technicien doit faire et vous montrer.

Où ce code s’applique

Un code n’a de sens que dans le contexte correct du produit et de sa version.

Périmètre principal

Système
Logiciels et services numériques
Marque
PostgreSQL
Type de produit
Base de données

Variantes connues du code

  • PostgreSQL 23505
  • SQLSTATE 23505
  • unique_violation

Ce que signifie ce code

Cette erreur appartient à la classe 23 des violations d’intégrité. La correction dépend d’un doublon invalide d’une répétition idempotente ou d’un conflit attendu nécessitant une politique ON CONFLICT explicite.

Avertissements et conditions d’arrêt

  • Élevéavertissement éditorial

    Ne supprimez ni lignes ni contrainte unique comme correction générique. Identifiez d’abord la règle nommée et le comportement de conflit attendu.

    Justification: PostgreSQL current error codes appendix · PostgreSQL current INSERT and ON CONFLICT documentation

Symptômes et causes

Causes probables · par ordre

  • Violation d’une contrainte uniqueConfirmée

    PostgreSQL classe SQLSTATE 23505 comme unique_violation dans la classe 23 des violations d’intégrité.

    Justification: PostgreSQL current error codes appendix

  • INSERT ou UPDATE entre en conflit avec une clé existanteFréquente

    La ligne proposée duplique une combinaison protégée par une contrainte ou un index unique.

    Justification: PostgreSQL current error codes appendix · PostgreSQL current INSERT and ON CONFLICT documentation

  • Conflit de concurrence attendu sans politique explicitePossible

    Quand les écritures répétées ou simultanées sont valides une action ON CONFLICT délibérée peut remplacer une nouvelle tentative générique.

    Justification: PostgreSQL current INSERT and ON CONFLICT documentation

Technicien virtuel

Le code 23505 apparaît-il encore après ces vérifications ?

Répondez à quelques questions pour préciser la cause probable et l’action suivante la plus sûre. Ces indications ne remplacent jamais un professionnel.

Sources et références techniques

  1. 1

    PostgreSQL current error codes appendix

    PostgreSQL Global Development Group · 2026 · official_doc

  2. 2

    PostgreSQL current INSERT and ON CONFLICT documentation

    PostgreSQL Global Development Group · 2026 · official_doc

Sources: PostgreSQL current error codes appendix · PostgreSQL current INSERT and ON CONFLICT documentationrévisé 2026-08-22 · vérifié

Cette fiche vous a-t-elle été utile ?