2

我正在尝试创建一个触发器,以根据另一个表上的插入有条件地插入新行......我似乎无法确定语法。到目前为止,这是我所拥有的:

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 ;

当这个触发器运行时,我可以在哪里放置我想要打印到屏幕上的消息?

4

1 回答 1

5

错字:

DELIMETER
     ^--- should be an I: DELIMITER
于 2013-05-02T17:21:28.443 回答