微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我创建了一个

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

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

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

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

解决方法

您可以在子表的下一个 INSERT 语句中使用 identity() 方法。在这个例子中,子表有一个 ref_id 列作为外键加上一个 data_col 作为其数据。子表有自己的主键列和引用测试表的 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(),?);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。