【发布时间】: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")
有什么想法吗?谢谢!
【问题讨论】: