J'essaye de créer un déclencheur pour insérer une nouvelle rangée conditionnellement basée sur une insertion sur une autre table ... Je ne peux pas sembler clouer la syntaxe. Voici ce que j'ai jusqu'ici:mysql trigger ne fonctionne pas?
DELIMETER $$
CREATE TRIGGER overPricedCar
AFTER INSERT ON cars
FOR EACH ROW
BEGIN
IF (new.sellPrice > '80000')THEN
INSERT INTO listings VALUES(new.carName,'GOLD','0',' ');
END IF;
END$$
DELIMETER ;
Pour une raison que je continue à obtenir une erreur, ils semble être Syntaxe des OK, je ne sais pas où je suis allé mal.
EDIT
Après correction de la faute de frappe, la gâchette 'fonctionne'.
J'ai ajouté un commentaire à afficher lorsque le déclencheur se produit. Je l'ai testé, et le message de sortie est imprimé à l'écran, mais le déclencheur ne fait pas remplir les inserts:
DELIMITER $$
CREATE TRIGGER overPricedCar
BEFORE INSERT ON cars
FOR EACH ROW
BEGIN
IF (new.sellPrice > '80000')THEN
INSERT INTO listings VALUES(new.carName,'GOLD','0',' ');
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = "New Gold car!"; // this line throws it off
END IF;
END$$
DELIMITER ;
Où puis-je placer les messages que je veux imprimer à l'écran lorsque ce déclencheur fonctionne ?
et l'erreur est ?? – jcho360
@ jcho360 # 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 « Delimeter $$ CREER TRIGGER overPricedCar APRÈS INSERT sur les voitures pour chaque ligne B » à la ligne 1 – shnozolla
quel est l'erreur? –