使用H2嵌入式
Java dabatase,我遇到了identity()和scope_identity()的问题.分配给变量时,这些函数似乎不起作用:
我们有简单的表格:
create table test3 (x int IDENTITY);
这可以正常工作,返回插入的最后一个值:
insert into test3 values (default);
select scope_identity()
以下构造应返回相同但返回null
insert into test3 values (default);
set @a=scope_identity();
select @a;
我做错了什么还是H2中的错误?
最佳答案 问题是set实际上重置了范围标识(为null),因为它不是查询.只有返回结果的语句(例如select和call)才是查询.所以你能做的是:
select @a := scope_identity();
这有效.我同意在这种情况下设置不起作用是意外的,我将检查是否可以支持它.