我在表名 agent_mst 上创建了一个 MySQL 触发器,如下所示
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
所以它的作用是,每次我们插入一条记录时,它都会生成 agent_code 字段值,例如SDA0001、SDA0002、SDA0003 ......
现在假设我删除一条代码为SDA0003的记录并插入新记录,它肯定会生成代理代码为SDA0004。因为它正在使用max_id并将其增加 1。但在这里我想再次获得SDA0003。这样所有的agent_codes都可以保持顺序。怎么做?
提前致谢。