通过函数和触发器实现Mysql 数据表的非整数列的自增长
第一步:创建数据表
//实现 t_machine 表 machine_id的自增长
create table t_machine (
uuid VARCHAR(32),
machine_id VARCHAR(12),
machine_name VARCHAR(20),
organization VARCHAR(12),
create_by VARCHAR(32),
create_date datetime,
update_by VARCHAR(32),
update_date datetime,
del_flag VARCHAR(2),
PRIMARY KEY(uuid)
)
第二步:创建函数
create function f_GetMachineId()
returns varchar(12)
begin
return(select CONCAT('M',RIGHT(10000 + IFNULL(right(MAX(machine_id),3),0)+1),3) from t_machine);
end
//备注:结果拼接位 以M字符开头 保留三位数字 的machine_id
执行函数SELECT返回结果如图:
第三步:创建触发器
create trigger machineTrigger
before insert on t_machine
for each ROW
BEGINE
SET new.machine_id = f_GetMachineId();
END