【问题标题】:Mysql trigger delimiter in version 5.5.5Mysql 5.5.5 版本中的触发器分隔符
【发布时间】:2016-11-28 07:53:55
【问题描述】:

我在插入之前创建了一个 mysql 触发器,其行为就像从 1110 开始的自动增量字段

DROP TRIGGER IF EXISTS set_nr_claim_AI;

DELIMITER $$
CREATE TRIGGER set_nr_claim_AI BEFORE INSERT ON users_claim
   FOR EACH ROW
   BEGIN
     DECLARE max_nr INT;
     SET max_nr = (SELECT MAX(nr_claim) FROM users_claim);
     IF max_nr IS NULL OR max_nr = 0 THEN
        SET NEW.nr_claim = 1100;
     ELSE
        SET NEW.nr_claim = max_nr +1;
    END IF;
END; $$
DELIMITER ;

在 mysql 版本 5.5.5 中出现此错误:#1064 - 您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行的“DELIMITER”附近使用的正确语法

但在 mysql 5.6 版本中一切正常,我找不到解决方案。

我还需要解决旧版本的 mysql(我的暂存环境有 5.5.5)

【问题讨论】:

  • 您是否尝试过使用分隔符 //
  • @MuhammadMuazzam 是的,我试过 // 和 |也可以作为分隔符。结果相同。
  • 尝试将其作为分隔符 // 或保留它。 stackoverflow.com/questions/9017269/…

标签: mysql triggers delimiter


【解决方案1】:

我已经设法解决了这个问题。我只需要在 DELIMITER 之后添加一个新行;

【讨论】:

    猜你喜欢
    • 2011-11-23
    • 2015-10-30
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 2020-07-21
    相关资源
    最近更新 更多