Alors voilà mon problème (en simplifié).
J'ai une table 'Voiture' qui comprend les champs suivants : 'idVoiture', 'idMarque', 'nom' et 'poids'.
A partir d'une requête qui mets à jour le poids d'une voiture en fonction de sa marque et de son nom, je voudrais être sûr que la voiture existe et sinon la créer.
En SQL, ça donne quelque chose comme ça :
UPDATE Voiture SET poids=1000
WHERE idMarque=1 AND nom="Clio";
J'ai donc essayer de faire un Trigger, mais il semblerait qu'il ne passe pas dedans lorsque il ne trouve aucun champs à modifier... Ou alors c'est mon code qui est foireux. Bref, je ne serais pas contre un petit coup de main si quelqu'un a une idée !
DELIMITER |
CREATE TRIGGER test BEFORE UPDATE ON Voiture
FOR EACH ROW BEGIN
DECLARE x INT;
SET x = (SELECT COUNT(*) FROM Voiture WHERE nom=NEW.nom AND idMarque=NEW.idMarque);
INSERT INTO TMP VALUES (x);
IF x < 1 THEN
INSERT INTO Voiture(idMarque, nom, poids) VALUES (NEW.idMarque, NEW.nom, NEW.poids);
END IF;
END|
Bien entendu, rien ne s'écrit dans ma table 'TMP' si la Clio n'existe pas.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Tutoriel complet MySQL !
Tutoriel complet MySQL !