Триггер в MySQL автоинкремент



Я хотел бы создать триггер 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 " не может быть ноль")



Есть идеи? Спасибо!

557   1  

1 ответ:

Null не равно null в SQL.

Так что это никогда не будет правдой:

IF(newNumber=NULL) THEN

Вам нужно:

IF(newNumber IS NULL) THEN

Comments

    Ничего не найдено.