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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  easy php - create table on delete cascade

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

easy php - create table on delete cascade

n°2271605
minimoack
Posté le 15-12-2015 à 09:18:28  profilanswer
 

Bonjour !  
 
J'ai un script pour créer une bdd dans un fichier php, qui s'exécute correctement, qui crée bien la bdd et tout mais lorsque que je vais sur phpmyadmin, que je supprime une ligne, la suppression en cascade ne fonctionne pas... est-ce normal ?  
 
voici mon script de création :  

Code :
  1. //Création de la table Enquete
  2. $tabenq = "CREATE TABLE IF NOT EXISTS 1_Enquete (
  3. idEnquete INT NOT NULL AUTO_INCREMENT,
  4. nomEnquete VARCHAR(255) NOT NULL,
  5. PRIMARY KEY (idEnquete));";
  6. //Création de la table rubrique
  7. $tabrub = "CREATE TABLE IF NOT EXISTS 2_Rubrique (
  8. idRubrique INT NOT NULL AUTO_INCREMENT,
  9. nomRubrique VARCHAR(255) NOT NULL,
  10. idEnquete INT NOT NULL,
  11. PRIMARY KEY (idRubrique),
  12. INDEX idEnq_ind (idEnquete),
  13. FOREIGN KEY (idEnquete) REFERENCES 1_Enquete(idEnquete) ON DELETE CASCADE);";
  14. //Création de la table Q1
  15. $tabq1 = "CREATE TABLE IF NOT EXISTS 3_Q1 (
  16. idQ1 INT NOT NULL AUTO_INCREMENT,
  17. libelleQ1 VARCHAR(255) NOT NULL,
  18. idRubrique INT NOT NULL,
  19. PRIMARY KEY (idQ1),
  20. INDEX idRub_ind (idRubrique),
  21. FOREIGN KEY (idRubrique) REFERENCES 2_Rubrique(idRubrique) ON DELETE CASCADE);";
  22. //Création de la table Q2
  23. $tabq2 = "CREATE TABLE IF NOT EXISTS 4_Q2 (
  24. idQ2 INT NOT NULL AUTO_INCREMENT,
  25. libelleQ2 VARCHAR(255) NOT NULL,
  26. idQ1 INT NOT NULL,
  27. PRIMARY KEY (idQ2),
  28. INDEX idQ1_ind (idQ1),
  29. FOREIGN KEY (idQ1) REFERENCES 3_Q1(idQ1) ON DELETE CASCADE)";
  30. //Création de la table Campagne
  31. $tabCamp = "CREATE TABLE IF NOT EXISTS 5_Campagne (
  32. idCampagne INT NOT NULL AUTO_INCREMENT,
  33. dateCampagne DATE NOT NULL,
  34. idEnquete INT NOT NULL,
  35. PRIMARY KEY (idCampagne),
  36. INDEX idEnqCamp_ind (idEnquete),
  37. FOREIGN KEY (idEnquete) REFERENCES 1_Enquete(idEnquete) ON DELETE CASCADE);";


 
 
Du coup j'ai également essayé de faire un  

Code :
  1. DELETE FROM 1_enquete CASCADE
  2. WHERE idEnquete = 1


 
mais ça ne fonctionne pas (erreur sur le terme CASCADE)
 :jap:  :jap:


Message édité par minimoack le 15-12-2015 à 09:21:25
mood
Publicité
Posté le 15-12-2015 à 09:18:28  profilanswer
 

n°2271610
minimoack
Posté le 15-12-2015 à 09:49:46  profilanswer
 

Je viens de regarder le concepteur et les tables ne sont pas reliées par les clefs étrangères... je ne comprends pas pourquoi. Je sais le modifier manuellement, mais pourquoi les liens entre les tables ne sont-ils pas pris en compte?

n°2271823
minimoack
Posté le 17-12-2015 à 13:47:42  profilanswer
 

Bon, c'est bon, j'ai trouvé.  
fallait mettre "ENGINE=InnoDB  DEFAULT CHARSET=latin1;" à la fin de chaque create table pour que les liens entre les tables soient pris en compte.  :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  easy php - create table on delete cascade

 

Sujets relatifs
Moteur de recherche sur une tableSelect dans deux table
Changer le champs d'un enregistrement d'une table[Excel/VBA] Pivot table - Filtrer automatiquement sur une liste d'ID
Nombre de lignes maj supérieur au nombre de lignes de la tableEst-ce juste ? Je cherche la table d'addition en base -2.
changer le nom table dans ma pageDelete doublon
Créer des séries à partir de plusieurs colonnes d'une table 
Plus de sujets relatifs à : easy php - create table on delete cascade


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR