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

Requ�tes MySQL Discussion :

Utilis� cl� �trang�re comme cl� primaire


Sujet :

Requ�tes MySQL

  1. #1
    Membre averti
    Inscrit en
    F�vrier 2009
    Messages
    15
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2009
    Messages : 15
    Par d�faut Utilis� cl� �trang�re comme cl� primaire
    Bonjour,

    Voil�, j'ai MySQL 5.1.37-1ubuntu5 et j'ai un soucis entre 2 tables

    CREATE TABLE IF NOT EXISTS `Guildes` (
    `IDGuilde` int(1) NOT NULL,
    `Nom` varchar(50) NOT NULL,
    `DroitPublication` int(1) NOT NULL,
    `IDPersonnage` int(1) NOT NULL,
    `IDServeur` int(1) NOT NULL,
    PRIMARY KEY (`IDGuilde`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    CREATE TABLE IF NOT EXISTS `GuildeAmie` (
    `IDGuilde1` int(1) NOT NULL,
    `IDGuilde2` int(1) NOT NULL,
    `Guilde1` tinyint(1) NOT NULL,
    `Guilde2` tinyint(1) NOT NULL,
    PRIMARY KEY (`IDGuilde1`,`IDGuilde2`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    Ce que j'aimerai faire c'est qu'il est impossible d'ins�rer un IDGuilde dans la table GuildeAmie, si celle si n'existe pas dans la table Guilde.

    J'ai utilis� pour cela le Foreign Key donc cette commande :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ALTER TABLE `GuildeAmie` ADD FOREIGN KEY ( `IDGuilde1` ) REFERENCES `GuildeAmie` ( `IDGuilde1` )
    et voici la r�ponse (sur phpmyadmin)

    Votre requ�te SQL a �t� ex�cut�e avec succ�s ( Traitement en 0.0495 sec. )
    Mais lorsque j'ins�re des donn�es erron�es dans GuildeAmie... il accepte, alors que je ne veux pas justement.

    Est-ce que je me suis tromp� dans mon raisonnement ? Est-ce que j'ai pas tout mis ? Est-ce que ca n'existe pas dans MySQL ? .. je ne sais pas.

    Merci pour vos r�ponses.

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retrait�
    Inscrit en
    Novembre 2005
    Messages
    2 613
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 73
    Localisation : France, Finist�re (Bretagne)

    Informations professionnelles :
    Activit� : Retrait�
    Secteur : Administration - Collectivit� locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par d�faut
    Saluton,
    MySQL ne g�re les contraintes foreign key que sur les tables InnoDB.
    En MyIsam il accepte la d�claration mais n'en tient pas compte.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment �muler un tableau crois� [quasi] dynamique
    et : Une �nigme math�matique r�solue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre averti
    Inscrit en
    F�vrier 2009
    Messages
    15
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2009
    Messages : 15
    Par d�faut
    Oh... j'ai essayer de trouver l'erreur pendant 1heure.. et ce n'�tait que ca... et m___ ^^


    Ben merci, maintenant ca fonctionne bien

    Merci beaucoup !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 4
    Dernier message: 25/01/2013, 14h30
  2. [MCD] D�crire une cl� �trang�re comme cl� primaire
    Par anne-claire dans le forum Sch�ma
    R�ponses: 6
    Dernier message: 09/01/2012, 18h22
  3. [syntaxe] 2 clefs �trang�res comme clef primaire
    Par novices dans le forum PostgreSQL
    R�ponses: 1
    Dernier message: 01/08/2006, 16h30
  4. R�ponses: 3
    Dernier message: 11/10/2005, 16h22
  5. [Utilier une table comme un tampon]
    Par Straahd dans le forum D�cisions SGBD
    R�ponses: 5
    Dernier message: 01/09/2005, 20h27

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