Триггер в 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 " не может быть ноль")
Есть идеи? Спасибо!
1 ответ:
Null не равно null в SQL.
Так что это никогда не будет правдой:
IF(newNumber=NULL) THENВам нужно:
IF(newNumber IS NULL) THEN
Comments