如何获得序列的下一个值?

adr*_*ift 8 db2 sequence

有人可以告诉下面明显的查询有什么问题:

db2 => select next value for schema_name.sequence_name;
Run Code Online (Sandbox Code Playgroud)

结果我得到:

SQL0104N  An unexpected token "END-OF-STATEMENT" was found following
"schema_name.sequence_name".  Expected tokens may include:  "<table_expr>".
SQLSTATE=42601
Run Code Online (Sandbox Code Playgroud)

Len*_*art 10

你需要从一些东西中选择。另一种选择是:

db2 => values next value for schema_name.sequence_name;
Run Code Online (Sandbox Code Playgroud)

正如您所指出的,您还可以使用SYSIBM.SYSDUMMY1或创建一个虚拟表:

db2 => select next value for schema_name.sequence_name from ( values 1 ); 
Run Code Online (Sandbox Code Playgroud)


adr*_*ift 5

db2 => select next value for schema_name.sequence_name from SYSIBM.SYSDUMMY1;

成功了