IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Erreur clé dupliquée


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut Erreur clé dupliquée
    Bonjour,

    J'ai un souci avec une requête plpgsql. Cette requete enregistre des données et parfois me signale cette erreur :

    ERREUR: une clé dupliquée rompt la contrainte unique.

    j'ai vérifié et effectivement une colonne a une contrainte unique. L'enregistrement est cependant bien effectué.

    Je pense que cette erreur survient si il y a une boucle dans l'enregistrement.

    Or ce n'est absolument pas le cas, pas de boucle. J'ai beau inspecter ma requete plpgsql dans tous les sens je n'ai pas cette boucle ni dans mon code php.

    Si quelqu'un aurait une piste ???

  2. #2
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Regarde si le paramètre constraint_exclusion n'est pas activé au niveau de la base, du user ou de la session
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    Bonjour Scheu,

    C'est dans le fichier config ?

  4. #4
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Salut
    Oui, regarde dans le postgresql.conf la valeur de constraint_exclusion
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    La contrainte est désactivé.

    J'ai eu ce matin le problème sur une autre table.

    Pourtant dans ma fonction je fais un test pour voir si les données ne sont pas déjà enregistrées dans la table.

    Si oui je fais un update si non un insert.

    La fonction a fait un insert alors qu'il fallait faire un update puisque les données étaient déjà enregistrées.

    J'ai exécuté par la suite plusieurs fois la fonction avec les mêmes paramètres et je n'ai plus eu d'erreur.

    Un vacuum au même moment a peut-être provoqué cette erreur ???je ne sais pas.

  6. #6
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    C'est forcément qu'au moment où tu testes si la ligne existe, elle n'existait pas encore (ou alors la session qui l'insérait n'était pas encore commitée)
    Ou alors c'est que ton teste ne marche pas car tu ne testes pas l'existence de toutes les colonnes composant ta clé primaire
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

Discussions similaires

  1. Réponses: 25
    Dernier message: 12/06/2012, 18h38
  2. [MySQL] dupliquer un login selon le prénom et le nom - erreur "Resource id #14" PQ ?
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/07/2007, 17h07
  3. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  4. erreur IDL:omg.org/CORBA/MARSHAL:1.0
    Par Pinggui dans le forum CORBA
    Réponses: 3
    Dernier message: 13/05/2002, 15h05
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo