为什么主键设置自增了,数据库也要设置,是避免雪花作用吗?
Mysql支持主键自增,主键自增是依赖于数据库的机制,所以数据库中也要进行设置。有些数据库没有自增的主键,例如oracle,如果要实现主键自增依赖于sequence序列。
雪花算法是MP默认的主键策略,是通过Java程序生成的自增主键,不依赖于数据库。如果想使用数据库的自增,除了在MP中将主键策略设为自增,还要在数据库中进行设置。
从两个方面解释:
首先在java中能实现主键自增依赖于jdbc驱动,比如MySQL驱动支持,但是一些其他的数据库就不支持自增.而MySQL驱动支持是因为MySQL提供了设置主键自增功能.
在java帮你自动生成主键id时,会去查询数据库拿到next Max Id,而这需要数据库的这个主键开启了自增功能,数据库才会去维护这个自增关系