背景:由于项目需要,必须用mysql设置主键自增长,而且想用字符串的。经过上网查找并且实验,终于做出了一套方案。现在就共享给大家! 解决思路:由于mysql不带sequence,所以要手写的,创建一张储存sequence的表(tb_sequence),然后手动插入一条数据 ,最后
背景:由于项目需要,必须用mysql设置主键自增长,而且想用字符串的。经过上网查找并且实验,终于做出了一套方案。现在就共享给大家!
解决思路:由于mysql不带sequence,所以要手写的,创建一张储存sequence的表(tb_sequence),然后手动插入一条数据 ,最后自定义一个函数来处理要增长的值。
一起做吧:
1、创建表tb_sequence,用来存放sequence值:
[sql] view
plaincopyprint?
createtabletb_sequence(namevarchar(50)notnull,current_valueintnotnull,_incrementintnotnulldefault1,primarykey(name));
2、手动插入数据:
[sql] view
plaincopyprint?
insertintotb_sequencevalues('userid',100,2);
3、定义函数 _nextval:
[sql] view
plaincopyprint?
DELIMITER //
createfunction_nex