l******0 发帖数: 244 | 1 我用 MariadB (MySql) 数据库,有个 Member 实体类。有个 id 做 primary key.
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
在启动 Web application 的时候,测试导入两条记录:
insert into Member (name, email, phone_number) values ('John Smith', 'john.
[email protected]/* */', '2125551212')
insert into Member (name, email, phone_number) values ('Mary Smith', 'mary.
[email protected]/* */', '2025551212')
这时 SQL 查数据库表,两条记录,primary key 分别为 1 和 2,没问题. 如果一个新
用户注册,加入的第三条记录应该是 3,但是尝试在前端一个新用户注册后,primary
key 跳到 4 开始,不从 3,变成 1 2 4.
这可能是什么情况? 如果初始记录我装载 5 条,然后前端表单测试提交一条记录,下
一个 ID 竟然从 8 开始,不从 6. 这可能什么原因造成的?Java EE 7 + Hibernate | l******0 发帖数: 244 | 2 又测试了一个,如果表里面先预装一个记录,然后测试前端提交一个,primary key 从
2 开始,对的。 Strange?
【在 l******0 的大作中提到】 : 我用 MariadB (MySql) 数据库,有个 Member 实体类。有个 id 做 primary key. : @Id : @GeneratedValue(strategy = GenerationType.IDENTITY) : private Long id; : 在启动 Web application 的时候,测试导入两条记录: : insert into Member (name, email, phone_number) values ('John Smith', 'john. : [email protected]/* */', '2125551212') : insert into Member (name, email, phone_number) values ('Mary Smith', 'mary. : [email protected]/* */', '2025551212') : 这时 SQL 查数据库表,两条记录,primary key 分别为 1 和 2,没问题. 如果一个新
| c*********e 发帖数: 16335 | 3 你删掉过记录没有?
【在 l******0 的大作中提到】 : 我用 MariadB (MySql) 数据库,有个 Member 实体类。有个 id 做 primary key. : @Id : @GeneratedValue(strategy = GenerationType.IDENTITY) : private Long id; : 在启动 Web application 的时候,测试导入两条记录: : insert into Member (name, email, phone_number) values ('John Smith', 'john. : [email protected]/* */', '2125551212') : insert into Member (name, email, phone_number) values ('Mary Smith', 'mary. : [email protected]/* */', '2025551212') : 这时 SQL 查数据库表,两条记录,primary key 分别为 1 和 2,没问题. 如果一个新
| s****y 发帖数: 503 | 4 你应该看看mysql的auto_increment的设置,估计mysql没有设置好。 | w**z 发帖数: 8232 | 5 primary key 是保证 unqiue.没有说是一定要连续的。你不能假设他们是连续的。
【在 l******0 的大作中提到】 : 我用 MariadB (MySql) 数据库,有个 Member 实体类。有个 id 做 primary key. : @Id : @GeneratedValue(strategy = GenerationType.IDENTITY) : private Long id; : 在启动 Web application 的时候,测试导入两条记录: : insert into Member (name, email, phone_number) values ('John Smith', 'john. : [email protected]/* */', '2125551212') : insert into Member (name, email, phone_number) values ('Mary Smith', 'mary. : [email protected]/* */', '2025551212') : 这时 SQL 查数据库表,两条记录,primary key 分别为 1 和 2,没问题. 如果一个新
| l******0 发帖数: 244 | 6 完全没有。
【在 c*********e 的大作中提到】 : 你删掉过记录没有?
| l******0 发帖数: 244 | 7 看到的正常情况下都是连续的吧?
@Id
@GeneratedValue(stragety=GenerationType.IDENTITY)
【在 w**z 的大作中提到】 : primary key 是保证 unqiue.没有说是一定要连续的。你不能假设他们是连续的。
| l******0 发帖数: 244 | 8 这个默认设置就行吧。因为其他表主标示符都是自然连续增长。
【在 s****y 的大作中提到】 : 你应该看看mysql的auto_increment的设置,估计mysql没有设置好。
| w**z 发帖数: 8232 | |
|