donc j'ai ce test à venir et je fais le test de pratique, mais de toute façon mon déclencheur ne fonctionnera pas. J'ai fait exactement comme on m'a enseigné, mais ça ne marchera pas. Quelqu'un peut-il m'aider?Le trigger MySQL ne fonctionne pas?
i créé cette table:
CREATE TABLE DiscountActions(
discountID int(5) NOT NULL AUTO_INCREMENT,
dishName varchar(70) NOT NULL,
type varchar(70) NOT NULL,
discountPercentage varchar(70) NOT NULL,
startdate date NOT NULL,
enddate date NOT NULL,
PRIMARY KEY (discountID)
);
et je veux ajouter ce déclencheur:
DELIMITER //
CREATE TRIGGER `checkStartDatum`
AFTER INSERT ON `DiscountActions`
FOR EACH ROW
BEGIN
IF NEW.startdate < DATE(NOW())
THEN DELETE
FROM DiscountActions
WHERE startdate = NEW.startdate;
END IF ;
END ;
//
mais quand je l'ajoute, l'erreur suivante apparaît: je reçois l'erreur suivante: # 1064 - Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser à proximité « DELETE puis de kortingactie OÙ begindatum = NEW.b » à la ligne 6
Qu'est-ce qu'il est censé faire est la suivante: lorsque vous ajoutez un nouveau DiscountAction , il devrait vérifier si le startdate est dans le passé. Si le startdate est dans le passé, il doit supprimer l'action de remise entière, car ce n'est pas possible.
Quelle erreur recevez-vous lorsque vous exécutez cette requête? –
Est-ce que c'est pour MySQL? –
j'obtiens l'erreur suivante: # 1064 - Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'THEN DELETE FROM kortingactie O beg begindatum = NEW.b' à la ligne 6 – DragonSlayer666