触发器中的SQL语法错误

时间:2013-09-14 17:19:59

标签: mysql syntax triggers mariadb

有人能告诉我这个sql不起作用吗?语法错误在哪里?

SET NEW.`modified` = CURTIME() WHERE `id` = NEW.id;

错误:

处理您的请求时发生了一个或多个错误: 以下查询失败:

CREATE DEFINER=`root`@`localhost` TRIGGER `event_name` 
BEFORE UPDATE ON `clients` 
FOR EACH ROW 
SET NEW.`modified` = CURTIME() WHERE `id` = NEW.id;
  

MySQL说:#1064 - 你的SQL语法有错误;检查   与您的MariaDB服务器版本对应的手册   在第1行的'WHERE id = NEW.id'附近使用的语法

图像显示错误 http://s23.postimg.org/rhsf2x1tn/screenshot.png

1 个答案:

答案 0 :(得分:3)

您不需要where条件来指定要更改的行。

对于每个要更新的行,您可以设置特定的列值。请参阅下面的示例以及引用的参考。

here引用/引用:

DELIMITER |
CREATE TRIGGER event_name BEFORE UPDATE ON clients 
FOR EACH ROW 
BEGIN
    SET NEW.date_modify = NOW();
END; 
|
DELIMITER ;