为了账号安全,请及时绑定邮箱和手机立即绑定

为什么要设置数据库自增

为什么主键设置自增了,数据库也要设置,是避免雪花作用吗?

正在回答

2 回答

       Mysql支持主键自增,主键自增是依赖于数据库的机制,所以数据库中也要进行设置。有些数据库没有自增的主键,例如oracle,如果要实现主键自增依赖于sequence序列。

       雪花算法是MP默认的主键策略,是通过Java程序生成的自增主键,不依赖于数据库。如果想使用数据库的自增,除了在MP中将主键策略设为自增,还要在数据库中进行设置。

0 回复 有任何疑惑可以回复我~
#1

老猿

如果你不改变MP的主键策略,还是会使用雪花算法,即使数据库中的表设置了自增,数据库自增也不会起作用,因为insert操作的主键是MP通过雪花算法生成的。只有你insert中不包含主键时Mysql的自增主键才会起作用。
2019-08-25 回复 有任何疑惑可以回复我~
#2

佛系biu 提问者

谢谢老师
2019-10-14 回复 有任何疑惑可以回复我~
#3

老猿 回复 佛系biu 提问者

不客气同学,理解了就好。
2019-10-14 回复 有任何疑惑可以回复我~

从两个方面解释:

  1. 首先在java中能实现主键自增依赖于jdbc驱动,比如MySQL驱动支持,但是一些其他的数据库就不支持自增.而MySQL驱动支持是因为MySQL提供了设置主键自增功能.

  2. 在java帮你自动生成主键id时,会去查询数据库拿到next Max Id,而这需要数据库的这个主键开启了自增功能,数据库才会去维护这个自增关系

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么要设置数据库自增

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信