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

SQL Procédural MySQL Discussion :

Problème avec une table


Sujet :

SQL Procédural MySQL

  1. #1
    Paulinho
    Invité(e)
    Par défaut Problème avec une table
    J'ai une table musicas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE musicas
    		(codDisco         varchar(15)     NOT NULL UNIQUE,
    		 nMusica           integer            NOT NULL,
    		 tituloMusica     varchar(50)     NOT NULL,
    		 codCantor        integer            NOT NULL,
    		 CONSTRAINT pk_musicas PRIMARY KEY (codDisco, nMusica),
    		 	CONSTRAINT fk_musicas_codDisco FOREIGN KEY (codDisco) 				REFERENCES discos (codDisco));
    Mais quand je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    INSERT INTO musicas VALUES ('7-12230-20911-4', 1, 'Sil nest pas trop tard', 1);
    	INSERT INTO musicas VALUES ('7-12230-20911-4', 2, 'Ma religion dans son regard', 1);
    	INSERT INTO musicas VALUES ('7-12230-20911-4', 3, 'La paix', 1);
    	INSERT INTO musicas VALUES ('7-12230-20911-4', 4, 'Le temps passe', 1);
    	INSERT INTO musicas VALUES ('7-12230-20911-4', 5, 'Si tu pars', 1);
    	INSERT INTO musicas VALUES ('7-12230-20911-4', 6, 'Clemence', 1);
    	INSERT INTO musicas VALUES ('7-12230-20911-4', 7, 'Ce qui ne tue pas nous rend plus fort', 1);
    	INSERT INTO musicas VALUES ('7-12230-20911-4', 8, 'Mon plus beau Noel', 1);
    	INSERT INTO musicas VALUES ('7-12230-20911-4', 9, 'Te savoir pres de moi', 1);
    	INSERT INTO musicas VALUES ('7-12230-20911-4', 10, 'Ma verite', 1);
    	INSERT INTO musicas VALUES ('7-12230-20911-4', 11, 'Elle sen moque', 1);
    	INSERT INTO musicas VALUES ('7-12230-20911-4', 12, 'Affronte-moi', 1);
    	INSERT INTO musicas VALUES ('7-12230-20911-4', 13, 'Apprendre a aimer', 1);
    MySQL me donne le message d'erreur suivante:
    Duplicate entry '7-12230-20911-4' for key 2
    Je ne comprend pas pourquoi et je ne sais pas quoi faire!

    Peut-être ma definition de foreign key?

    Merci d'avance.

  2. #2
    Membre actif Avatar de Ryan Sheckler
    Homme Profil pro
    Moine
    Inscrit en
    Novembre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Moine

    Informations forums :
    Inscription : Novembre 2005
    Messages : 196
    Points : 219
    Points
    219
    Par défaut
    Parce que ton attribut codDisco est une clé primaire dont la valeur est UNIQUE. On le voit bien ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...codDisco         varchar(15)     NOT NULL UNIQUE,...
    La valeur 7-12230-20911-4 ne peut donc apparaître que pour une entrée, une ligne, bref un INSERT INTO seulement. Chez toi, à chaque insertion, l'attribut a valeur unique prend la même valeur. La valeur ne pouvant qu'être unique, il te renvoie le message d'erreur.

    Soit lui enlever son statut d'unique,
    soit donner un code différent à chaque entrée.

  3. #3
    Paulinho
    Invité(e)
    Par défaut
    Merci Mikanou!

  4. #4
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    C'est plutôt l'attribut UNIQUE qu'il faut enlever, car la clef primaire est constituée de 2 champs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PRIMARY KEY (codDisco, nMusica)
    'Ce qui ne tue pas nous rend plus fort'
    Ca, c'est de Friedrich Nietzsche...

  5. #5
    Paulinho
    Invité(e)
    Par défaut
    Oui, c'est une chanson du dernier cd de Johnny Hallyday. J'ai déjà demandé au père noel pour me donner un...

    Merci pcaboche!

Discussions similaires

  1. problème avec une Table en C# asp.net
    Par duffman dans le forum ASP.NET
    Réponses: 9
    Dernier message: 23/04/2009, 12h38
  2. Problème avec une table attachée
    Par ARFY56 dans le forum Modélisation
    Réponses: 2
    Dernier message: 17/12/2008, 17h23
  3. problème avec une table de faits
    Par mikedavem dans le forum Conception/Modélisation
    Réponses: 1
    Dernier message: 29/04/2008, 06h37
  4. [XSL~FO] Problème avec une table de plus d'une page
    Par ganga dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 25/01/2007, 20h16
  5. [JSTL] Problème avec une table
    Par lionelh dans le forum Taglibs
    Réponses: 3
    Dernier message: 22/02/2006, 21h26

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