目前,我正在使用H2进行集成测试,并使用DB2进行DEV和UAT。

为了从序列中获取下一个值,我们将Values NEXTVAL FOR SCHEMANAME.SEQNAME SQL用于Db2,并且可以按预期运行。

但是,以上SQL在H2数据库中不起作用,我们在H2中使用Select NEXTVAL ('SCHEMANAME','SEQNAME') 这在Db2中不起作用

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

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

===============>>#1 票数:0

SQL标准具有一个NEXT VALUE FOR sequenceGeneratorName表达式。 两个数据库都支持此表达式:

https://www.ibm.com/support/knowledgecenter/zh-CN/SSEPEK_12.0.0/sqlref/src/tpc/db2z_sequencereference.html

https://h2database.com/html/grammar.html#term

你可以用

VALUES NEXT VALUE FOR SCHEMANAME.SEQNAME; 

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

  ask by mnt.atr translate from so

本文未有回复,本站智能推荐: