我希望能够只调用
假设序列
上面的代码将会输出11,12(我只需要11和再次出现的11)。
上述代码将会输出11或者10,
有没有一种方法可以在同一个SQL语句中使用
NEXTVAL
一次,并多次使用返回的值。然而,这种方法并不可行。假设序列
seq_name
目前处于10(查询是独立执行的,不按照列表顺序执行):SELECT NEXTVAL('seq_name'), NEXTVAL('seq_name');
上面的代码将会输出11,12(我只需要11和再次出现的11)。
SELECT NEXTVAL('seq_name'), CURRVAL('seq_name');
SELECT NEXTVAL('seq_name'), LASTVAL();
上述代码将会输出11或者10,
NEXTVAL
在当前会话中从未被调用会导致错误。[我知道为什么会出现这个错误 :)]有没有一种方法可以在同一个SQL语句中使用
NEXTVAL
和CURRVAL
来获取相同的递增值(在这个例子中为11)以便重复使用?或者有简单的解决方案吗?
INSERT () VALUES ()
语句结构?我需要用于插入语句,因此更通用的解决方案比较合适。您提供的解决方案过于特定于SELECT语句。 - ADTCINSERT SELECT
替换INSERT VALUES
:) - peterm