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

Administration Oracle Discussion :

violation de contrainte unique (KOLOK.IDCONFIG_PK)


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Par défaut violation de contrainte unique (KOLOK.IDCONFIG_PK)
    Bonjour à tous,

    je n'ai pas beaucoup de connaissances en Oracle, et je dois corriger cette erreur sous Oracle 9i :

    INSERT INTO config VALUES (NULL, 'glob_pjinbd', 'non')

    violation de contrainte unique (KOLOK.IDCONFIG_PK)

    je vous ai fait quelques screens de la config de la table qui pose problème :

    http://www.opensofts.org/temp/oracle_constraints.jpg
    http://www.opensofts.org/temp/oracle_indexes.jpg
    http://www.opensofts.org/temp/oracle_triggers.jpg

    le truc, c'est que j'ai une liste de 10 requêtes sous ce format. c'est jamais la même qui plante, et celles executées avant celle qui plante, ne posent pas de soucis.

    merci pour votre aide

  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    ben c'est que tu essaies d'insérer une ligne avec pour clé primaire une valeur déjà existante ...

    Une clé primaire doit être unique dans une table ...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Par défaut
    la clef primaire, c'est là ou je met NULL, et "normalement" le trigger devrait me trouver un ID. enfin, à ce que j'ai compris

    si je vide ma table config, et que je re execute ma 10ène de requêtes, avec des valeurs bien distinctes (même pour les autres champs, mais ça change rien), ça plante (mais jamais sur la même)

  4. #4
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    Citation Envoyé par Sephiroth Lune
    la clef primaire, c'est là ou je met NULL, et "normalement" le trigger devrait me trouver un ID. enfin, à ce que j'ai compris
    Certes ! mais dans ce cas tu va récupérer la prochaine valeur de ta séquence...
    mais est-tu certains que cette séqence est à jour avec les ID de la table ?

    par exemple si je crée une séquence qui débute à un, puis insère 3 rows dans ma table SANS utiliser ma séquence (transfert d'une autre base) avec export/import par exemple j'aurais les ID de ces 3 rows (dison 9/10/11) qui existeront dans la table...

    donc ensuite les 8 premier inserts => OK, la séquence s'incrémente de 1 à 8, PUIS au prochain coup paf ! KO parce que la séquence va te proposer 9... mais 9 existe déjà !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Par défaut
    je t'explique ma démarche :

    - on m'a filé un dump (.dmp) Oracle 9i d'une base de donnée qui a été remplie en utilisant les triggers / séquences
    - je remonte le dump sur un Oracle 9i, et là, j'ai ce problème
    - je peux pas te dire si en executant mes insert chez le client directement, sans passer par un export / import, ça fonctionne ou pas

    c'est pourtant une opération que l'on fait relativement souvent dans ma boite, et je n'ai pas encore eu ce problème. donc je me dis que ça provient de la base en elle même qui est pétée quelque part, mais je ne trouve rien.

    le plus bizarre, c'est que si comme tu le dis il y avait eu des insert sans utiliser la séquence, ça planterait toujours sur le même insert (pour reprendre ton exemple, celui qui veut prendre l'ID 9), alors que là, ça ne plante jamais sur le même

  6. #6
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    ok, mais est-ce que tu remonte ce dump dans des tables vides ou des tables qui contiennent déjà des lignes ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ORA-00001: violation de contrainte unique
    Par other1234 dans le forum Forms
    Réponses: 5
    Dernier message: 08/05/2012, 20h16
  2. Réponses: 4
    Dernier message: 13/03/2012, 11h37
  3. Error ORA-00001: violation de contrainte unique
    Par delilou dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 17/03/2011, 17h26
  4. [hibernate] Violation de contrainte unique
    Par miyabi dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/06/2006, 14h52
  5. Réponses: 2
    Dernier message: 13/02/2006, 11h13

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