gpt4 book ai didi

mysql - 如何使用 MySQL 触发器生成顺序用户代码?

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

我在表名agent_mst上创建了一个MySQL触发器BEFORE INSERT,如下所示

BEGIN
DECLARE max_id INT;

SET max_id=(SELECT MAX(agent_id_pk)+1 FROM `agent_mst`);
IF (max_id IS NULL) THEN
SET max_id=1;
END IF;

SET NEW.date_added=NOW(),
NEW.date_updated=NOW(),
NEW.agent_code = CONCAT('SDA', LPAD(max_id, 4,'0'));

END

所以它的作用是,每次我们插入一条记录时,它都会生成类似于 SDA0001、SDA0002、SDA0003、... 的 agent_code 字段值

现在假设我删除一条代码为SDA0003的记录并插入新记录,它肯定会生成代理代码为SDA0004。因为它采用 ma​​x_id 并将其增加 1。但在这里我想再次获得 SDA0003 。这样所有的agent_codes都可以保持顺序。如何做到这一点?

提前致谢。

最佳答案

您需要识别第一个(最小的)缺失的 ID。在此链接中查看,这是在选择查询中执行此操作的好方法: Find mininum not used value in mysql table

关于mysql - 如何使用 MySQL 触发器生成顺序用户代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14039402/

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