Partage
  • Partager sur Facebook
  • Partager sur Twitter

[mySQL] Foreign keys ...

c'est supposé fonctionner correctement ?

    6 avril 2006 à 5:25:57

    Bonjour à tous. Je suis en période d'organisation de ma base de données pour mon futur site. J'ai présentement des cours au collège d'SQL sur SQL Server et j'ai appris à utiliser les clés étrangères afin de m'assurer de la cohérence de mes tables entre elles. J'ai lu de la documentation sur mySQL et ça ne semble pas très différent des autres types de BDD. Or, voilà la requête que je faisais pour ajouter une contrainte de clé étrangère :

    ALTER TABLE ma_table
    ADD CONSTRAINT nom_de_ma_contrainte
    FOREIGN KEY(nomChamps) REFERENCES autre_table(nomChamps)


    Le serveur de BDD accepte ma requête et aucune erreur de syntaxe ne m'apparaît. Toutefois, j'utilise beaucoup phpMyAdmin et rien ne m'indique que j'ai ajouté cette contrainte correctement. Bref, je me suis dit que le meilleur moyen de le savoir serait de le tester. J'ai ajouté une entrée dans la table primaire où la clé primaire serait la clé étrangère de la deuxième table. J'ai fait de même pour la deuxième, en prenant soin de mettre la même valeur à la clé étrangère qu'à la clé primaire de ma première table. Puis, j'ai décidé d'effacer l'entrée de la première table, ce qui m'aurait normalement donné une erreur de contrainte, car la deuxième table serait devenue dépendante de la première table. Mais non, tout se passe normalement et ça efface l'entrée dans ma première table et celle dans la deuxième est toujours existante ...

    Donc, ce que je demande c'est si quelqu'un a déjà réussi à intégrer des clés étrangères dans sa base de données et si oui, comment pour que ça fonctionne correctement ? Pour votre information, j'utilise la version 4.0.25 de mySQL donc inutile de mettre des notions de la version 5 ;) .

    Merci de votre aide ! :)

    -Zyth
    • Partager sur Facebook
    • Partager sur Twitter
      6 avril 2006 à 9:54:48

      MySQL supporte les clés étrangères uniquement si le type de table utilisé les supporte. En clair, il faut utiliser des tables de type InnoDB.

      Sinon il me semble que phpMyAdmin n'est pas capable d'afficher les clés étrangères quand il y en a...
      • Partager sur Facebook
      • Partager sur Twitter
        6 avril 2006 à 13:05:59

        Euh mais attend je comprends plus: Tu veux utiliser des clefs étrangères et tu restes sous MySQL ... :x

        Donne moi une seule bonne raison de ne pas passer à PostGreSQL et crée un tuto sur les techniques avancées de MySQL ^^

        Edit: http://www.power4website.com/cat/mutualiseslinux.php

        35 euros par an et tu as droit à 4 BDD PostGreSQL + tout ce qu'il te faut pour faire un site de moins de 110 Mo ...
        • Partager sur Facebook
        • Partager sur Twitter

        [mySQL] Foreign keys ...

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown