永发信息网

mysql设置了唯一约束之后插入相同数据失败但自增ID还是会+1

答案:2  悬赏:0  手机版
解决时间 2021-02-04 00:54
  • 提问者网友:精神病院里
  • 2021-02-03 03:19
mysql设置了唯一约束之后插入相同数据失败但自增ID还是会+1,到下一条能插入的数据的时候,ID之间就差了2,怎么解决?
最佳答案
  • 五星知识达人网友:不甚了了
  • 2021-02-03 03:26
新建一个表d:
drop table if exists d;
create table d(id int primary key auto_increment,num int unique);
向表d插入值:
insert into d(num) values(1);
重复插入后查询:
1 1
2 3
3 4

结论:插入失败自动id不会增长。我使用的是mysql5.0。你可以把你的语句粘贴出来简单描述一下吗?
全部回答
  • 1楼网友:三千妖杀
  • 2021-02-03 03:57
我试了,这个语句要是直接在mysql命令行里执行的话,自增字段id设成空字符串'',也是会报错的。估计php是做了特殊处理,如果判断出是自增字段,就不管实际输入的值了。 用java,应该是没有这种处理吧。不管是jdbc拼sql也好,用框架hibernate或mybatis也好,就不给id字段赋值就好了,是可以成功插入的,就是最终拼出来的sql应该类似, insert into member(username, ......) values('yourusername',......);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯