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 :

Erreur lors de la création de clés étrangères


Sujet :

MySQL

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Comptable
    Inscrit en
    Janvier 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 29
    Points : 25
    Points
    25
    Par défaut Erreur lors de la création de clés étrangères
    Bonjour à tous,

    Je suis en train de lier mes différentes tables entre elles via des clés étrangères ou des tables associative.

    Pour commencer doucement et voir comment ça marche j'ai voulu créer une clé étrangère toute simple.

    Sur phpmyadmin, dans ma table chaine, je clique sur vue relationnelle pour créer ma liaison.
    Je sélectionne:
    • la table à lier: série
    • le nom de la clé primaire de ma table série : id
    • nom de la contrainte: InnoDB
    • ON DELETE : set null
    • ON UPDATE : cascade


    Contrainte de clé étrangère (INNODB)

    Voila ce que ça me donne:


    Requête SQL :


    ALTER TABLE `chaine` ADD CONSTRAINT `produire` FOREIGN KEY (`id`) REFERENCES `ddstvavatarland`.`serie`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
    MySQL a répondu: Documentation

    #1215 - Impossible d'ajouter des contraintes d'index externe
    Je retourné le problème dans tous les sens, j'ai tenté de faire mes liaisons sur MYSQL Workbench et quand je met ma base sur mon serveur Wampserver ça me met la même erreur #1215 - Impossible d'ajouter des contraintes d'index externe.

    J'ai cherché sur google la signification de l'erreur et je n'ai rien trouvé. Vous avez une idée de la bêtise que j'aurais pu faire?

    Je vous remercie d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    postez les ordres de création des deux tables

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Comptable
    Inscrit en
    Janvier 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Bonjour

    Voila les informations sur mes deux tables:


    == Structure de la table chaine

    |------
    |Colonne|Type|Null|Défaut
    |------
    |//**id**//|int(11)|Non|
    |nom|varchar(45)|Oui|NULL
    |creation|date|Oui|NULL
    |fin|date|Oui|NULL
    == Contenu de la table chaine

    == Structure de la table serie

    |------
    |Colonne|Type|Null|Défaut
    |------
    |//**id**//|int(11)|Non|
    |titre|varchar(100)|Oui|NULL
    |titreVO|varchar(100)|Oui|NULL
    |annee|year(4)|Oui|NULL
    |format|time|Oui|NULL
    |lien|varchar(255)|Oui|NULL
    == Contenu de la table serie
    Comme explication de relation entre ces deux tables j'ai: 1,1 chaine produit 0,n série ce qui implique que la clé étrangère doit être créée dans la table chaine.

    voila.

  4. #4
    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,

    Et en supprimant `ddstvavatarland`. dans votre ALTER TABLE ?

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Comptable
    Inscrit en
    Janvier 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Bonjour aieeeuuuuu

    J'ai tenté de créer ma relation en manuel en enlevant le ddstvavatarland sauf que là aussi ça ne marche pas.

    Sur wamp server j'ai plusieurs bases c'est pour ça que dans l'outil d'aide à la création des clés étrangères je peux choisir le nom de la base puis la table puis la colonne.

    J'y pense, mes colonnes ont presque toutes les même noms est-ce que c'est ça qui pourrait créer mon problème?
    Je veux dire par exemple pour ma clé primaire c'est toujours "Id", qui est suivi pas "nom" ...

    Faut-il que les noms de colonnes soient uniques?

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    La colonne id de la table serie est bien déclarée comme clef primaire ?

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Comptable
    Inscrit en
    Janvier 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Oui toutes mes tables ont une clé primaire.

    Voulez-vous le code complet de ma base?

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    non.

    En enlevant les clause ON delete / update, même constat ?

    Après je n'ai plus d'idée perso.

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Comptable
    Inscrit en
    Janvier 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Pour On Delete et on update j'ai mis no action et ça a fonctionné.

    J'ai tenté plein d'autres choses mais je n'ai pas pensé à ça.

    Vous savez quelle type d'interférence ce réglage provoquait?

  10. #10
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    oki,

    Déjà, votre colonne id de la table chaine est déclaré en not null (clef primaire ?)

    Du coup le ON DELETE SET NULL ca va pas fonctionner.

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Comptable
    Inscrit en
    Janvier 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Comptable
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Oui toutes tous les noms de colonnes contenant ID sont déclarés en tant que clé primaires.

    Je comprend le set null ne peut pas être mis avec ce réglage de clé primaire. Je prend note de cette particularité.

    Je vous remercie pour votre aide et comme je le crains ce sera sans doute à bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création de clés étrangères, erreur de syntaxe
    Par piotrr dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 23/01/2008, 09h02
  2. Erreur lors de la création de clés étrangères
    Par Neuromancien2 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 02/07/2007, 23h44
  3. Réponses: 1
    Dernier message: 26/05/2005, 12h24
  4. message d'erreur lors de la création de la base
    Par ber_jp dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/05/2004, 12h15
  5. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47

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