@GeneratedValue 的自增主键问题
来源:6-1 关于红包收发之操作数据库(上)

jerry4013
2019-06-10
我加完@GeneratedValue后,数据库并没有把id设置为自增主键,而是给我新建了一个叫hibernate_sequence的表。
我如果通过post的方法不需要输入id也可以按那个sequence自动生成id, 但是我如果通过insert into luckymoney(producer, money) values(“zhangsan”, 100); 这种sql语句去创建新记录,就会提示我说“ERROR 1364 (HY000): Field ‘id’ doesn’t have a default value”。
请问:
- 我的id是如何跟那个hibernate_sequence的表连起来的呢?如果我用navicat要怎么查看呢?
- 我如果想用SQL语句,如果正确的插入数据呢?
谢谢!
写回答
2回答
-
我可以跟你回答一下, 这里因为mysql本身并不具有序列这一个功能, 所以在实际开发中, 也会用到这种情况, 就是在一张表中专门存储序列, 每次取序列值之后要将这个值加1, 如果要实现插入数据,主键自增, 需要将操作分开, 也就是取主键, 插入数据这两步操作, 其中 取主键需要写存储过程, 或者分步操作, 实现过程就是这样!
012019-06-19 -
yuzhewo
2019-06-21
一般操作都是在创建表的时候指定id auto_increment实现主键自增的,spring中这个序列化的好处跟意义还不是太能吃透,还望高手指点一二。
00
相似问题