SSM+MySQL如何实现非主键字段自增?

问题描述:其实就是实现一个流水号的自动增长。MySQL数据表有一张“t_record”表,其中“serial_num”字段表示流水号,从1开始。现在想实现该字段自动增长。

补充:表中已经有主键字段“id”,所以不能将“serial_num”设置为auto_increment。

所以请问各位有什么简便的思路吗?

补充:(使用触发器后,我尝试一下多线程插入,然后就报这个错误了。这是频繁触发触发器导致的错误吗?应该怎么避免?图片说明

2个回答

首先一张表可以同时有多个字段auto_incrementde的,如果你想要用一个字段来表示流水号,可以考虑时间+序号来生成,用触发器,当往这张表插入数据时,生成一个流水号绑定这条数据即可。

Sunrise_stu
Sunrise_stu 回复: 它会提示“there can be only one auto column and it must be defined as a key.”
3 个月之前 回复
Sunrise_stu
Sunrise_stu 我试过,MySQL里InnoDB引擎的表,不能有多个字段auto_increment,我的意思是单独自增的。
3 个月之前 回复

为什么同时存在 主键字段“id” 和 “serial_num”?

把id当serial_num使用,不行的?

如果非得要 serial_num 自增,要么在插入的时候,就计算好,直接插入值;要么在数据库里,写个触发器,每次set serial_num = max(serial_num) +1

zy_281870667
Bug开发攻城狮 回复Sunrise_stu: 并发导致了死锁,所以造成执行失败。你已经设置id是主键,但是,非递增。你可以把serial_num设置为自增。 mysql是限制一张表,一个自增字段,一般是主键id,如果主键没设置自增,那么可以设置其他字段的,不过,在设置自增的时候,注意加上索引,不然报错
3 个月之前 回复
Sunrise_stu
Sunrise_stu 我尝试了触发器,但是用多线程测试的时候(2个线程,每个线程插入100条数据),发现会报异常。如果大哥有空,还请指点指点小弟^^!(已补充异常截图)
3 个月之前 回复
Sunrise_stu
Sunrise_stu id是非自增的,是自己生成的。我试下触发器,谢谢你的回答!
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

2
数据库中的一个字段数据是另一张表的主键
3
搭建SSM框架中,controller无法实现页面跳转?
2
求教:在ssm框架下如何获取设备api接口传输的json数据并保存到mysql数据里?
1
要做一个电商网站后台使用的ssm框架前端页面想要实现那种自动生成静态页面的技术求大神推荐
1
怎么使用HTML显示增删改查
2
使用ssm框架实现增删改查,在HTML页面上显示
1
使用SSM框架 将mysql数据库中建立的表的数据插入到postgresql数据库中的同名表内。求一个demo
2
java 数据库表字段动态新增、修改,实体类怎么处理?
2
java web服务SSM项目 SQL是相同的,mybaits加载数据和mysql查询的不一致。
3
IDEA中SSM项目 无法实现页面显示
0
求一个城市书屋自助服务项目的源码SSM的,Android也行
1
java的ssm框架怎么实现链接邀请注册?请大神讲解
1
请问:SSM框架中,@Produces与@RequestMapping中的produces属性的作用是否一样?有何区别?
0
SSM+easyUI,用了datagrid,想实现下图中展示的那种表格内的复选框形式,有没有什么好的方法?
2
ssm项目中,service层的遍历查询,如何编写?
1
java,SSM项目能不能直接调用PC端自用的打印图片设置界面?
2
ssm项目中,通过循环调用多个接口,在业务层如何实现?
1
Mac os SSM框架链接数据库出现问题
2
SSM统一处理抛出自定义异常并在页面弹框提示
3
有大佬知道我选择出差日期和返程日期以后,怎么能让总天数自动计算并显示出来,前端用的是layui,后台SSM框架?