Suppression ON DELETE CASCADE

Suppression ON DELETE CASCADE - SQL/NoSQL - Programmation

Marsh Posté le 28-03-2006 à 18:08:15    

Salut je suis en php & mysql  
j'ai 2 tables JEU & CATEGORIE donc un jeu est liée à 1 une 1 seule catégorie
Je voudrais quand je supprime une catégorie supprimer tous les jeux de cette catégorie
 
Voici ma création de la table jeu  
 
CREATE TABLE jeu
 (
  num_jeu integer Primary key auto_increment,
  titre_jeu varchar(20),
  image_jeu varchar(100),
  desc_jeu varchar(250),
  contenu_jeu varchar(250),
  nbjoueurs_min_jeu integer,
  nbjoueurs_max_jeu integer,
  age_jeu integer,
  stock_jeu integer,
  prix_jeu integer,
  num_cat varchar(30) not null references categorie(num_cat) ON DELETE CASCADE
 );
 
 
 
et ma requête de suppression
 
$req = mysql_query('SELECT * FROM categorie WHERE num_cat = '.$_GET['num_cat'],$connect);
 
bon à mon avis la requête de suppression est toute bête ça doit être dans ma déclaration que ça ne doit pas être ça FOREIGN KEY nan ?
 
merci d'avance

Reply

Marsh Posté le 28-03-2006 à 18:08:15   

Reply

Marsh Posté le 28-03-2006 à 18:32:36    

jiojioforever a écrit :


...
et ma requête de suppression
$req = mysql_query('SELECT * FROM categorie WHERE num_cat = '.$_GET['num_cat'],$connect);
....


Elle est bizarre quand même pour une requète de suppression...

Reply

Marsh Posté le 28-03-2006 à 18:42:17    

bah nan mysql comprend comme
 
SELECT * FROM categorie WHERE num_cat = 1;
 
je vois pas le blem ?

Reply

Marsh Posté le 28-03-2006 à 18:45:37    

suppression <=> SELECT ???

Reply

Marsh Posté le 28-03-2006 à 18:49:32    

oula oui je me suis trompé de requête !! lol dsl
 
$req = mysql_query('DELETE FROM categorie WHERE num_cat = '.$_GET['num_cat'].';',$connect);

Reply

Marsh Posté le 28-03-2006 à 20:24:05    

et le message d'erreur c'est quoi?

Reply

Marsh Posté le 28-03-2006 à 20:50:27    

il n'y a pas de message d'erreur... il me supprime bien la catégorie mais pas les jeux liés à celle-ci

Reply

Marsh Posté le 28-03-2006 à 20:53:34    

ben oui c'est logique.  
 
tu peux le faire dans l'autre sens, mais pas dans ce sens la avec le on delete cascade.  
 
faut faire tes suppressions manuellement... pas le choix...

Reply

Marsh Posté le 28-03-2006 à 21:05:52    

c'est vrai ???
mais il sert à quoi alors le DELETE CASCADE ?
 
j'ai déja fais des requêtes qui quand je supprime ce genre de truc tous les enregistrements se suppriment aussi...

Reply

Marsh Posté le 29-03-2006 à 20:53:33    

Verifie que tes tables soient bien au format innoDB. C'a n'apparait pas dans ta requêye de création de table.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed