MySQL触发新旧查询

时间:2013-03-18 00:05:21

标签: mysql sql triggers

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

我已经以这种方式构建了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;

1 个答案:

答案 0 :(得分:2)

您尚未终止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是一个保留的关键字。用反引号分隔它,以便它可以用作表名。

相关问题