Mysql - Jointure en insert

Roukeuss Messages postés 8 Statut Membre -  
P@t@ch0n Messages postés 603 Statut Membre -
Bonjour,

Voila mon problème :

J'ai 2 tables :

`demande_info` (
`ID_Demande` INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
`Date_Demande` date NOT NULL,
...
) TYPE=INNODB, DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `demande_etat` (
`ID_Demande` INT NOT NULL,
`Etat_Demande` int(1) NOT NULL,
...
) TYPE=INNODB, DEFAULT CHARSET=utf8;

Je souhaite, que lorsque j'ajoute une ligne a demande_info, mysql me créer automatiquement une ligne supplémentaire dans demande_etat qui auras la même ID_Demande.

J'ai essayer avec FOREIGN KEY (`ID_Demande`) REFERENCES `demande_info` ( `ID_Demande` ) ON UPDATE CASCADE mais sa n'as pas marcher et je ne m'y connait pas trop :/

Donc si quelqu'un pouvait m'aider sa serai sympa :)
Configuration: Windows XP
Firefox 3.0.8

4 réponses

  1. Roukeuss
     
    Un ptit up, et je commence même a me demande si c'est possible .... :/
    0
  2. P@t@ch0n Messages postés 603 Statut Membre 85
     
    C'est possible en utilisant un déclencheur (trigger).

    Attention toutefois, peu d'hébergeur offre la possibilité de créer des trigger.

    Dans ton cas, ça donnerait.

    CREATE TRIGGER AI_DEMANDE_ETAT AFTER INSERT ON demande_info
    FOR EACH ROW
    INSERT INTO demande_etat(ID_Demande, Etat_Demande) VALUES(NEW.ID_Demande, 0);


    Il faut impérativement changer de delimiter pour enregistrer un trigger.

    Sinon, pourquoi tu as fait 2 tables ?
    0
  3. Roukeuss Messages postés 8 Statut Membre
     
    Ouai merci c'est sa :)

    Ben euh en faite c'était juste une question de propreté de basse, la 1ere est remplis par un utilisateur lambda et l'autre seulement par certaines personne qui gère le tout :/

    Mais je commence quand même a me demander si c'est pas mieux d'en faire qu'une :/
    0
  4. P@t@ch0n Messages postés 603 Statut Membre 85
     
    Je crois qu'en effet une seule table est amplement suffisante ;)
    0