我试图创建一个触发器,根据另一个表上的插入条件有条件地插入新行…我似乎无法确定语法.
这是我到目前为止:
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 ;
出于某种原因,我不断收到错误,他们的语法似乎没问题,我不知道我哪里出错了.
编辑
纠正错字后,触发器“起作用”.
我已经添加了一个注释,以便在触发器发生时输出.
我测试了它,输出消息被打印到屏幕但触发器实际上没有完成插入:
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 ;
当此触发器运行时,我可以在哪里将要打印的消息放入屏幕?
解决方法:
错字:
DELIMETER
^--- should be an I: DELIMITER