gpt4 book ai didi

MySQL 触发器自增

转载 作者:行者123 更新时间:2023-11-29 02:25:47 25 4
gpt4 key购买 nike

我想创建一个 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")

有什么想法吗?谢谢!

最佳答案

Null 不等于 SQL 中的 null。

所以这永远不会是真的:

IF(newNumber=NULL) THEN

你需要:

IF(newNumber IS NULL) THEN

关于MySQL 触发器自增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22366740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com