0

我正在尝试创建触发器,因此当“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;
4

1 回答 1

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

于 2013-03-18T00:06:38.340 回答