【发布时间】:2013-06-21 10:20:51
【问题描述】:
我希望调用一次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 OR 给出一个错误,即在当前会话中从未调用过 NEXTVAL。 [ 我知道错误发生的原因 :) ]
有没有办法在同一个 SQL 语句中使用 NEXTVAL 和 CURRVAL 来获得相同的递增值(在本例中为 11)以供重用?或者这个问题的简单解决方案?
【问题讨论】:
标签: postgresql