MySQL中自定义函数实现id自增长
2014-10-27 17:30
447 查看
今天在项目中有这样一个需求,就是需要把table1里面的a,b,c三个字段通过按a,b分组,对c进行汇总,然后插入到table2中的a,b,c中,然后我就这样写的SQL语句:
这样一写,问题又出现了table2有个主键id,但不是自增长的,需要在插入的时候自己给主键设值。于是我找老大要求把id改成自增长的,老大不同意。考虑到每次在把table1里面的数据插入到table2中的时候,table2都是空的,无奈,我只能写了这样一个实现id自增长的一个函数getId:
然后在每次进行插入前都把id设为0,使id从1开始,于是我的SQL语句就成了下面这个样子:
此外如果想删除该函数的话可以使用命令:
insert into table2(a,b,c) select a,b,sum(c) c from table1 group by a,b;
这样一写,问题又出现了table2有个主键id,但不是自增长的,需要在插入的时候自己给主键设值。于是我找老大要求把id改成自增长的,老大不同意。考虑到每次在把table1里面的数据插入到table2中的时候,table2都是空的,无奈,我只能写了这样一个实现id自增长的一个函数getId:
create function getId() returns int begin set @id = @id + 1; return @id; end;
然后在每次进行插入前都把id设为0,使id从1开始,于是我的SQL语句就成了下面这个样子:
set @id = 0; insert into table2(id,a,b,c) select getId() id,a,b,sum(c) c from table1 group by a,b;
此外如果想删除该函数的话可以使用命令:
drop function getId;
相关文章推荐
- MongoDB自动增长id实现、自定义函数调用、与Spring集成
- MongoDB自动增长id实现、自定义函数调用、与Spring集成
- mysql自定义函数实现统计一个字符串在另一个长字符串中出现的次数
- hibernate利用mysql的从增张id属性实现自增长id和手动赋值id并存
- Mysql中实现提取字符串中的数字的自定义函数分享
- mysql自定义函数实现递归查询
- hibernate利用mysql的自增张id属性实现自增长id和手动赋值id并存
- MySQL插入自增长列-使用自定义ID
- hibernate利用mysql的自增张id属性实现自增长id和手动赋值id并存
- mysql 自定义函数 实现字符串匹配
- mongodb 自定义函数—自增长id
- MySQL 存储过程或者函数中传参数实现where id in(1,2,3,...)IN条件拼接
- mysql 中自定义实现split功能的函数
- mysql利用自定义变量实现分析函数
- hibernate利用mysql的自增长id属性实现自增长id和手动赋值id并存
- Mysql中实现提取字符串中的数字的自定义函数分享
- MySQL执行查询自定义列从1开始增长到最大记录数模拟自增ID
- Mysql中用order by实现自定义排序函数field(value,str1,str2,str3,str4)和locate(substr,str)
- linux下mysql扩展,自定义函数实现(…
- mysql实现id自动增长