我发现这个问题非常有用,因为我试图在特定数据库使用 hibernate_sequence 表时手动插入表。我使用这个问题的解决方案来修改我的导入脚本。我有一个脚本,其中一个接一个地包含许多“插入”语句,我必须手动设置 id。例如:
insert into T01_REGIONS (ID, NAME) VALUES ({the next id from hibernate_sequence}, 'name1');
insert into T01_REGIONS (ID, NAME) VALUES ({the next id from hibernate_sequence}, 'name2');
..
.
所以我做的是以下解决我的问题:
insert into T01_REGIONS (ID, NAME) VALUES ((select next_val from hibernate_sequence limit 1), 'name1');update hibernate_sequence as t1, (select next_val+1 as next from hibernate_sequence limit 1) as t2 set t1.next_val = t2.next;
insert into T01_REGIONS (ID, NAME) VALUES ((select next_val from hibernate_sequence limit 1), 'name2');update hibernate_sequence as t1, (select next_val+1 as next from hibernate_sequence limit 1) as t2 set t1.next_val = t2.next;
..
.
在我的 sql 脚本的每一行末尾添加额外的查询很容易使用 notepad++。我知道这可能非常难看,但它确实对我有用,以便在我的数据来自 oracle hibernate 操作的数据库时将数据导入到测试 hibernate 操作的 mysql 数据库。