【问题标题】:MySQL CREATE TRIGGER, Syntax Error. What I'm doing wrong?MySQL 创建触发器,语法错误。我做错了什么?
【发布时间】:2011-06-24 08:27:02
【问题描述】:
 DELIMITER ||
CREATE TRIGGER `monthly_insert` BEFORE INSERT ON `history_monthly`
FOR EACH ROW
BEGIN
    NEW.`uid` = CONCAT(OLD.`year`, OLD.`month`, OLD.`charactersId`);
END;
||
DELIMITER ;

它返回一个错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.`uid` = CONCAT(OLD.`year`, OLD.`month`, OLD.`charactersId`);
END' at line 4 

这是我第一次使用触发器,我正在尽我所能尝试寻找灵魂,但我失败了;

【问题讨论】:

  • 如果这是BEFORE INSERT触发器,肯定不会有旧行吗?

标签: mysql stored-procedures triggers concat


【解决方案1】:

您需要在此行添加单词SET

SET NEW.`uid` = CONCAT(OLD.`year`, OLD.`month`, OLD.`charactersId`);

另外,正如评论者所指出的,OLD 触发器中没有 OLD 值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 2019-04-26
    • 1970-01-01
    相关资源
    最近更新 更多