【问题标题】:MySQL trigger old and new queryMySQL 触发新旧查询
【发布时间】:2013-03-18 00:05:20
【问题描述】:

我正在尝试创建触发器,因此当“订单”表中的“名字”行 update 时,新值将保存在表 triggers.FirstName 中。

我以这种方式构建了 MySQL 查询,但是我收到“您的 SQL 语法有错误;”我想我做错了什么:

DELIMITER $$
CREATE TRIGGER when_updated
BEFORE UPDATE 
ON order
FOR EACH ROW 
BEGIN
INSERT INTO triggers (timestamp, FirstName) VALUES (now(), NEW.FirstName)
END$$
DELIMITER;

【问题讨论】:

    标签: mysql sql triggers


    【解决方案1】:

    您尚未终止INSERT 语句,

    DELIMITER $$ 
    CREATE TRIGGER when_updated 
    BEFORE UPDATE ON `order` FOR EACH ROW 
    BEGIN 
        INSERT INTO triggers (timestamp, FirstName) 
        VALUES (now(), NEW.FirstName);
                                  -- ^ HERE
    END$$ 
    DELIMITER;
    

    另外,ORDER 是一个保留的关键字。用反引号分隔它,以便它可以用作表名。

    【讨论】:

    • INSERT INTO triggers (timestamp, FirstName) VALUES (now(), NEW.FirstName);你能告诉我我还需要终止什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 2011-11-16
    • 1970-01-01
    • 2012-11-16
    相关资源
    最近更新 更多