【问题标题】:MySQL Trigger auto incrementMySQL 触发器自动增量
【发布时间】:2014-03-13 00:27:32
【问题描述】:

我想创建一个 mysql(v5.5) 触发器,每次我插入一个值时,它都会按一个随机数自动递增。这是我正在做的事情:

DELIMITER $$

DROP TRIGGER IF EXISTS actCodeAuto
$$
CREATE TRIGGER actCodeAuto BEFORE INSERT ON activity
FOR EACH ROW BEGIN
  DECLARE newNumber INT DEFAULT 1;
  SELECT Max(activityCode) INTO newNumber FROM activity;
  IF(newNumber=NULL) THEN
    SET new.activityCode=100;
  ELSE
    SET new.activityCode = newNumber+FLOOR(1+RAND()*3);
  END IF;
END$$

DELIMITER ;

我想在每次插入一行时自动将一个随机数增加到列activityCode 的最大值,除非我第一次插入一行时,我想将 Max(activityCode) 设置为 100。

当我第一次插入一行时,MySQL只是报错:(1048, "Column 'activityCode' cannot be null")

有什么想法吗?谢谢!

【问题讨论】:

    标签: mysql sql triggers


    【解决方案1】:

    SQL 中 Null 不等于 null。

    所以这永远不会是真的:

    IF(newNumber=NULL) THEN
    

    你需要:

    IF(newNumber IS NULL) THEN
    

    【讨论】:

    • 我想通了!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2011-09-17
    • 2023-04-11
    相关资源
    最近更新 更多