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

Installation MySQL Discussion :

pb clés étrangers


Sujet :

Installation MySQL

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Par défaut pb clés étrangers
    salut tout le monde
    j'ai un probléme trés grave est qui me laisse bloqué c'est:
    je veux faire deux clés étrangers villeId2 et VilleID2 dans ma table nommée distance a la table Ville voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE TABLE Ville
    (
      VilleId int(10) PRIMARY KEY,
      VilleNom VARCHAR(50),
      Type VARCHAR(50),
      Remarque VARCHAR(255)
    )
    CREATE TABLE Distance
    (
      VilleId1 int(10),
      VilleId2 int(10),
      Distance Decimal,
      Remarque VARCHAR(255),
      PRIMARY KEY (VilleId1,VilleId2)
    )
    aidez moi svp.

  2. #2
    Membre chevronné
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Par défaut
    ou est la question ?

  3. #3
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Alter Table Distance add
    Constraint FK_Distance_Ville_ID1 Foreign Key (VilleId1)
    References Ville(VilleId)
    GO
    Alter Table Distance add
    Constraint FK_Distance_Ville_ID2 Foreign Key (VilleId2)
    References Ville(VilleId)
    GO

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Par défaut
    la question c'est :
    comment faire pour que j'aurai deux clés étrangers ligneid1 et ligneid2.
    c'est ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE Distance 
    ( 
    VilleId1 int(10), 
    VilleId2 int(10), 
    Distance Decimal, 
    Remarque VARCHAR(255), 
    PRIMARY KEY (VilleId1,VilleId2) 
    /* =====MON ESSAI=======
         key Ville_VilleId1(VilleId1), 
         Key Ville_VilleId2(VilleId2)
       ====================
    */
    ) ;
    merci de coriger mes fautes car je debute.

    [Modéré par WOLO Laurent][Merci d'utiliser les balises codes]

  5. #5
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut
    Dans voter code, vous ne créez pas 2 clés étrangères, mais une clé primaire composite, ce qui n'est pas à faire.

    Suivez l'exemple de Wolo
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Par défaut
    salut
    salut je parle de mysql les amis at non a ms sql server.
    j'ai posté ce message la bas au forum Mysql mais il ya qulqu'un qui l'a palcé ici.
    donc pouvez vous me donner la solution en mysql s'elle existe.
    merci bien.

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    L'avez vous essayé avec my sql ?
    Ce code est normalisé et peut s'exécuter dans la plupart des SGBDR actuelles.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Par défaut
    salut
    j'ai éssayé mais mysql m'a donné cet message.


    Erreur
    requête SQL :

    Alter Table Distance add
    Constraint FK_Distance_Ville_ID1 Foreign Key (VilleId1)
    References Ville(VilleId)
    GO
    Alter Table Distance add
    Constraint FK_Distance_Ville_ID2 Foreign Key (VilleId2)
    References Ville(VilleId)
    GO

    MySQL a répondu:


    You have an error in your SQL syntax near 'GO
    Alter Table Distance add
    Constraint FK_Distance_Ville_ID2 Foreign Key (Vi' at line 4

  9. #9
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Il suffit de remplacer les Go par des point-virgules

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Alter Table Distance add 
    Constraint FK_Distance_Ville_ID1 Foreign Key (VilleId1) 
    References Ville(VilleId) ;
    Alter Table Distance add 
    Constraint FK_Distance_Ville_ID2 Foreign Key (VilleId2) 
    References Ville(VilleId) ;

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  10. #10
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Par défaut salut
    merci bien mon ami waloo
    j'aimerai bien être ton ami

    j'éspére bien que dieu unique vous aider bien a la vie et a l'aprévie.
    au revoir

  11. #11
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Par défaut
    salut
    je l'ai appliqué mais aucun changement affecté mon code.
    la table reste toujours comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE distance (
      VilleId1 int(10) NOT NULL default '0',
      VilleId2 int(10) NOT NULL default '0',
      Distance decimal(10,0) default NULL,
      Remarque varchar(255) default NULL,
    ) TYPE=MyISAM;

    est ce que c'est naturel ca.
    merci encore une fois pour votre intention.

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Les tables MyISAM ne gèrent pas les contraintes de clef étrangères (pour cela, il y a InnoDB). La syntaxe est alors reconnue mais ignorée.

    Je ne sais pas pourquoi on t'a déplacé le sujet dans le forum MS SQL.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  13. #13
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Citation Envoyé par pcaboche
    Les tables MyISAM ne gèrent pas les contraintes de clef étrangères (pour cela, il y a InnoDB). La syntaxe est alors reconnue mais ignorée.
    +1
    Change ça en "TYPE=InnoDB"

    Je redéplace le sujet vers MySQL

  14. #14
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Par défaut
    salut tous le monde
    j'ai installé le Mysql 4.1 qui permet d'utiliser le support inndb.
    mais quand je lui donné ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TABLE distance ( 
      VilleId1 int(10) NOT NULL default '0', 
      VilleId2 int(10) NOT NULL default '0', 
      Distance decimal(10,0) default NULL, 
      Remarque varchar(255) default NULL, 
    ) TYPE=Innodb;
    il passe mais quand je consule la base a php myadmin je trouve que ma base et de type MyIssam .
    comment ca
    merci d'avance.

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Peut-être une version trop ancienne de phpMyadmin. Avec une 2.6.0, ça passe sans problème ou presque (une virgule en trop).
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  16. #16
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Par défaut
    salut mon frére
    j'utilise maintenant une des dérnière versions c'est phpmyadmin-2.6.4-pl4
    et le pb tjs existe
    aidez moi a resoudre ce problème svp.

  17. #17
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Qu'est-ce qui se passe si tu fais un SHOW CREATE TABLE distance ?

  18. #18
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Par défaut
    salut
    voici ce que mysql me donner aprés la requette :
    SHOW CREATE TABLE distance

  19. #19
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Essaie de faire un SHOW VARIABLES LIKE 'have_innodb'

  20. #20
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Par défaut
    voici mon frére le tableau que MySQL affiche:
    variable_name : DISABLED
    have_innobd : VALUE

Discussions similaires

  1. [phpMyAdmin] clés uniques, clés primaires et les clés étrangeres dans phpMyAdmin
    Par godza dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 26/03/2010, 21h59
  2. Alter avec deux clés étrangers
    Par asmaeita dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/05/2009, 00h01
  3. Problemes de remplissage clés étrangeres
    Par bruce207 dans le forum Modélisation
    Réponses: 2
    Dernier message: 31/03/2008, 15h53
  4. probleme de clés étrangeres
    Par alexlevenere dans le forum C#
    Réponses: 1
    Dernier message: 20/02/2008, 10h19
  5. [Win'Design] Clés étrangeres et index
    Par Zatoobux dans le forum Autres
    Réponses: 2
    Dernier message: 15/01/2007, 17h42

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