mysql实现字符串主键自增

此处ID格式为E0001 这种5位的 其他格式请自行变动

#获取最大ID值
set @val=(select user_id from user_info ORDER BY user_id desc LIMIT 0,1);
#去掉第一位
set @h=left(@val,1);
#从第二位获取所有
set @val=SUBSTR(@val,2);
#转成整数并加一
set @val=CONVERT(@val,SIGNED)+1;
#格式化val并补位为0
set @val=CONCAT(@h,LPAD(@val,4,'0'));
SELECT @val;
以下为转化为Sql语句形式,mybaits用SqlProvider这种方式可能不不太好搞,因为如果要同一时间插入 需要 insert into select 这种东西来搞
但其实也可以搞 只是字段多了写出来看起来一大坨  还不好维护 , 如果是用xml的话应该比较好弄 可以直接用标签搞了  鉴于项目使用注解形式,
且此处业务并不频繁,所以就直接用个sql整出来了  
SELECT (SELECT CONCAT(LEFT(C.ID,1),LPAD(CONVERT(SUBSTR(C.ID,2),SIGNED)+1,4,'0')) 
FROM (SELECT USER_ID AS ID FROM USER_INFO ORDER BY USER_ID DESC LIMIT 0,1) AS C) AS CC


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值