从H2数据库和DB2中选择NEXTVAL

从H2数据库和DB2中选择NEXTVAL,db2,h2,Db2,H2,目前,我使用H2进行集成测试,使用DB2进行开发和UAT 为了从一个序列中获取下一个值,我们对SCHEMANAME.SEQNAME使用了Values-NEXTVAL,它可以按预期工作 但是,上面的SQL在H2数据库中不起作用,我们正在H2中使用selectnextval('SCHEMANAME','SEQNAME')。这在Db2中不起作用 但是,我需要使用相同的SQL查询或DB2和H2来获取NEXTVAL 我们可以在H2和DB2中使用一个SQL来获取NEXTVAL吗?SQL标准为sequence

目前,我使用H2进行集成测试,使用DB2进行开发和UAT

为了从一个序列中获取下一个值,我们对SCHEMANAME.SEQNAME使用了
Values-NEXTVAL,它可以按预期工作

但是,上面的SQL在H2数据库中不起作用,我们正在H2中使用
selectnextval('SCHEMANAME','SEQNAME')
。这在Db2中不起作用

但是,我需要使用相同的SQL查询或DB2和H2来获取
NEXTVAL


我们可以在H2和DB2中使用一个SQL来获取
NEXTVAL
吗?

SQL标准为sequenceGeneratorName
表达式提供了一个
下一个值。这两个数据库都支持此表达式:

你可以用它来测试

值SCHEMANAME.SEQNAME的下一个值;

请注意,您需要最新版本的H2(例如1.4.199),因为旧版本的H2不支持表值构造函数(
VALUES…
)。

谢谢。它在H2、DB2和NEXTVAL中都可以正常工作