Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
508 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec FOREIGN KEY

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec FOREIGN KEY

n°2264687
13stephweb​13
Posté le 22-08-2015 à 20:41:15  profilanswer
 

Bonjour,
j'ai besoin d'aide svp, car je tente de créer une table :

Code :
  1. CREATE TABLE post_tag (
  2.     id INT PRIMARY KEY AUTO_INCREMENT,
  3.     post_id INT UNSIGNED,
  4.     tag_id INT UNSIGNED,
  5.     CONSTRAINT cle_post         -- On donne un nom à notre clé
  6.         FOREIGN KEY (post_id)     -- Colonne sur laquelle on crée la clé
  7.         REFERENCES posts(id)     -- Table de référence (Colonne de référence)
  8.         ON DELETE CASCADE,
  9.     CONSTRAINT cle_tag
  10.         FOREIGN KEY (tag_id)
  11.         REFERENCES tags(id)
  12.         ON DELETE CASCADE
  13. )
  14. ENGINE=InnoDB;


 
et Mysql me renvoi cette erreur:
#1215 - Cannot add foreign key constraint
 
Pour débauguer, Si je fait seulement ceci, ça marche :

Code :
  1. CREATE TABLE post_tag (
  2.     id INT PRIMARY KEY AUTO_INCREMENT,
  3.     post_id INT UNSIGNED,
  4.     tag_id INT UNSIGNED,
  5.     CONSTRAINT cle_post         -- On donne un nom à notre clé
  6.         FOREIGN KEY (post_id)     -- Colonne sur laquelle on crée la clé
  7.         REFERENCES posts(id)     -- Table de référence (Colonne de référence)
  8.         ON DELETE CASCADE
  9. )
  10. ENGINE=InnoDB;


 
Mais si je fait seulement ceci, ça ne marche pas:

Code :
  1. CREATE TABLE post_tag (
  2.     id INT PRIMARY KEY AUTO_INCREMENT,
  3.     post_id INT UNSIGNED,
  4.     tag_id INT UNSIGNED,
  5.     CONSTRAINT cle_tag
  6.         FOREIGN KEY (tag_id)
  7.         REFERENCES tags(id)
  8.         ON DELETE CASCADE
  9. )
  10. ENGINE=InnoDB;


 
Donc le problème viens de la je pense :

Code :
  1. CONSTRAINT cle_tag
  2.     FOREIGN KEY (tag_id)
  3.     REFERENCES tags(id)
  4.     ON DELETE CASCADE


 
Mais je ne vois pas la solution.
D'où viens mon erreur svp ?
Merci

mood
Publicité
Posté le 22-08-2015 à 20:41:15  profilanswer
 

n°2264690
lefilsdela​terre
Posté le 23-08-2015 à 01:28:41  profilanswer
 

Bonjour,
Peut-être as-tu déjà créé la table nommée posts, mais pas encore celle nommée tags, ou du moins si elle est créée n'a-t-elle pas de colonne id ?

n°2264691
13stephweb​13
Posté le 23-08-2015 à 08:03:09  profilanswer
 

ok merci. Si les tables tags et posts sont bien créées, et elles ont bien une colonne id. etrange

n°2264696
lefilsdela​terre
Posté le 23-08-2015 à 12:19:10  profilanswer
 

Il y a peut-être une légère différence entre les colonnes parent et enfant (unsigned pour les deux, même moteur de stockage).
En tout cas ceci marche :
 

Code :
  1. CREATE TABLE posts (
  2. id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT
  3. )
  4. ENGINE=InnoDB;
  5. CREATE TABLE tags (
  6. id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT
  7. )
  8. ENGINE=InnoDB;
  9. CREATE TABLE post_tag (
  10.     id INT PRIMARY KEY AUTO_INCREMENT,
  11.     post_id INT UNSIGNED,
  12.     tag_id INT UNSIGNED,
  13.     key post_id(post_id) ,
  14.     key tag_id(tag_id) ,
  15.     CONSTRAINT cle_post
  16.         FOREIGN KEY (post_id)
  17.         REFERENCES posts(id)
  18.         ON DELETE CASCADE,
  19.     CONSTRAINT cle_tag
  20.         FOREIGN KEY (tag_id)
  21.         REFERENCES tags(id)
  22.         ON DELETE CASCADE
  23. )
  24. ENGINE=InnoDB;


 
 
Je pencherais pour un unsigned oublié dans la table tags, mais l'erreur chez moi ne s'affiche pas pareil.

n°2264738
13stephweb​13
Posté le 24-08-2015 à 19:33:13  profilanswer
 

Ok merci. je vais esséyer


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec FOREIGN KEY

 

Sujets relatifs
Neophyte : Probleme VB - ACCESS 2013Problème de focus sur ma notation
déployer asp.net problème d'hébergement[C#] Problème récup fabrique de la classe COM
Probleme de validation CSS2.1) : balise <style> et autre[Oracle] recreation de foreign key avec option novalidate
Problème d'envoi de mailsproblème GIT
Problème de données php dans envoi de mail htmlPetit problème Java
Plus de sujets relatifs à : Problème avec FOREIGN KEY


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR