如何在同一连接中的 HSQLDB 中插入记录后获取自动递增列的生成 ID?

How to get the generated ID of an auto increment column after insertion of a record in HSQLDB within same connection?

我创建了一个table作为

    create table test(log_id integer identity primary_key, filename varchar, filecontent blob)

现在我在 java 中的查询使用准备好的语句在测试中插入值

    insert into test(filename, filecontent) values (?,?);

插入后,我想知道在同一个数据库连接中最新插入的记录的 log_id 是什么,因为; 基于此 log_ID 我想在另一个 table 中插入另一个与外键相同 log_id 的子记录? 我检查了 call identity() 方法,但我不知道如何在 java 代码中使用它并获取返回值? 请帮忙

您可以在子 table 的下一个 INSERT 语句中使用 identity() 方法。在此示例中,子 table 有一个 ref_id 外键列和一个 data_col 数据列。子 table 有自己的主键列和引用测试 table.

的 log_id 列的外键列
create table child(child_id integer identity primary_key, ref_id integer, data_col varchar);
alter table child add constraint child_fk foreign key (ref_id) references test(log_id);
insert into child(ref_id, data_col) values (identity(), ?);