mysql自定义自增函数_MySQL中自定义函数实现id自增长

今天在项目中有这样一个需求,就是需要把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;

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值