您的位置:首页 > 数据库 > MySQL

MySQL中自定义函数实现id自增长

2014-10-27 17:30 447 查看
今天在项目中有这样一个需求,就是需要把table1里面的a,b,c三个字段通过按a,b分组,对c进行汇总,然后插入到table2中的a,b,c中,然后我就这样写的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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: