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

 MySQL Discussion :

Auto-référence dans une table


Sujet :

MySQL

  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut Auto-référence dans une table


    Je suis en train de lire ce cours http://sqlpro.developpez.com/cours/s...te-recursives/ et sur EasyPHP donc MySQL j'aimerais suivre un exemple de création de table que voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE T_VEHICULE
    (VHC_ID         INTEGER NOT NULL PRIMARY KEY,
     VHC_ID_FATHER  INTEGER FOREIGN KEY REFERENCES T_VEHICULE (VHC_ID),
     VHC_NAME       VARCHAR(16))
    Seulement bin il veut pas:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOREIGN KEY REFERENCES T_VEHICULE (VHC_ID), VHC_NAME VARCHAR(16))' at line 3
    Est-ce une limitation de MySQL ?

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 904
    Points : 51 649
    Points
    51 649
    Billets dans le blog
    6
    Par défaut
    Oui, MySQL est un peudo SGBDR et n'est pas relationnel... Ses limitations et mauvaises performances sont légions.

    A lire : http://blog.developpez.com/sqlpro/p9...oudre_aux_yeux

    A +

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE T_VEHICULE (
        VHC_ID INTEGER NOT NULL PRIMARY KEY,
        VHC_ID_FATHER INTEGER,
        VHC_NAME VARCHAR(16),
        FOREIGN KEY(VHC_ID_FATHER) REFERENCES T_VEHICULE(VHC_ID)
    )
    fonctionne parfaitement, maintenant pourquoi MySQL n'accepte pas la définition de la clé primaire directement dans la définition de la colonne allez savoir ^^.

    PS : n'oubliez pas qu'il faut que la clé étrangère puissent être null sinon vous ne pourrez pas insérer d'enregistrement a cause de la contrainte de la clé primaire.

  4. #4
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 591
    Points
    3 591
    Billets dans le blog
    8
    Par défaut
    Salut
    Je pense qu'il suffit juste de supprimer FOREIGN KEY cela donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE T_VEHICULE
    (VHC_ID         INTEGER NOT NULL PRIMARY KEY,
     VHC_ID_FATHER  INTEGER REFERENCES T_VEHICULE (VHC_ID),
     VHC_NAME       VARCHAR(16))
    Cela même chose que PostgreSQL.
    Par ailleurs il faut signaler que MySQL n'accepte pas la récursivité! Donc le tuto de sqlpro n'est pas pour MySQL.
    @+

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Quel autre SGBDR puis-je installer en sachant que je suis sous Windows et que j'aimerais un minimum d'interface comme par exemple phpmyadmin, bon au pire ligne de commande si pas le choix

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par alassanediakite Voir le message
    Salut
    Je pense qu'il suffit juste de supprimer
    Ce n'est pas le but, je veux faire ces exercices car en plus les cours de SQLPro sont excellents et j'ai un test sur les requêtes SQL et la modélisation de DB

  7. #7
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 591
    Points
    3 591
    Billets dans le blog
    8
    Par défaut
    Salut
    Pour les tuto de sqlpro il faut installer SQL Server 2008 express ou Évaluation pour 90 jours. PostgreSQL (9.x) suffit dans certains cas.
    @+

  8. #8
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par alassanediakite Voir le message
    Salut
    Pour les tuto de sqlpro il faut installer SQL Server 2008 express ou Évaluation pour 90 jours. PostgreSQL (9.x) suffit dans certains cas.
    @+
    Ho bin ça tombe bien, il se trouve que je révise aussi VB.Net donc il est installé le SQL Server

  9. #9
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Comment je fait pour utiliser SQL Serveur 2008 Express fournit avec la plateforme .Net ? Je veut dire par là autrement qu'avec le langage VB.Net, un peu comme si j'était sous phpMyAdmin ou sinon en ligne de commande.

  10. #10
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Vous pouvez y accéder depuis visual studio, ou installer SQL Server management studio express

Discussions similaires

  1. [AC-2007] Comment récupérer la valeur du dernier numéro auto inséré dans une table ?
    Par marot_r dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2010, 17h17
  2. [Doctrine] auto référence sur une table
    Par cdm1024 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 23/06/2009, 17h18
  3. Réponses: 2
    Dernier message: 05/03/2009, 14h42
  4. Comment obtenir un champs auto incrémenté dans une table DBase IV ?
    Par souminet dans le forum Bases de données
    Réponses: 1
    Dernier message: 11/12/2007, 13h55
  5. Réponses: 6
    Dernier message: 29/06/2006, 10h36

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