我想创建一个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,“列'activityCode'不能为空”)
有什么想法吗?谢谢!
答案 0 :(得分:2)
在SQL中Null不等于null。
所以这永远不会成真:
IF(newNumber=NULL) THEN
你需要:
IF(newNumber IS NULL) THEN