MySQL触发器自动递增

MySQL触发器自动递增,mysql,sql,triggers,Mysql,Sql,Triggers,我想创建一个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

我想创建一个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'不能为null”)


有什么想法吗?谢谢

Null在SQL中不等于Null

所以这永远不会是真的:

IF(newNumber=NULL) THEN
你需要:

IF(newNumber IS NULL) THEN

我已经弄明白了!谢谢