MySQL 触发器自动增量
Posted
技术标签:
【中文标题】MySQL 触发器自动增量【英文标题】:MySQL Trigger auto increment 【发布时间】: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")
有什么想法吗?谢谢!
【问题讨论】:
【参考方案1】:SQL 中 Null 不等于 null。
所以这永远不会是真的:
IF(newNumber=NULL) THEN
你需要:
IF(newNumber IS NULL) THEN
【讨论】:
我想通了!谢谢!以上是关于MySQL 触发器自动增量的主要内容,如果未能解决你的问题,请参考以下文章