如何在Apache Derby中使用SEQUENCE?

时间:2011-04-20 10:48:45

标签: java sql sequence derby

我想在Apache Derby 10.7中使用SEQUENCE支持。我用以下语句创建了序列:

CREATE SEQUENCE SAMPLE_SEQ AS INT MAXVALUE 999999 CYCLE;

如何从SAMPLE_SEQ中选择下一个/当前值?你能帮我解决一下这个问题吗?

5 个答案:

答案 0 :(得分:8)

Apache Derby Doc说:Use a NEXT VALUE FOR expression

应该像

SELECT NEXT VALUE FOR SAMPLE_SEQ;

答案 1 :(得分:3)

答案 2 :(得分:1)

要获取序列的当前值,应执行以下SQL:

SELECT CURRENTVALUE FROM SYS.SYSSEQUENCES WHERE SEQUENCENAME='SAMPLE_SEQ'

答案 3 :(得分:0)

在SQL命令提示符下,您可以使用以下语句查询下一个值:

values NEXT VALUE FOR <sequence_name>

这将作为嵌入INSERT语句的表达式。 E.g:

INSERT INTO <table_name> (IDFIELD) VALUES (NEXT VALUE FOR <sequence_name>)

答案 4 :(得分:0)

如果您想从'序列'中获取'当前值':

  • 值(&lt; 序列的下一个值&gt;)

使用JDBC在Java中相同:

ResultSet rs = conn.prepareStatement("values (next value for <sequence>)").executeQuery();
rs.next();
int seqValue = rs.getInt(1);

来源: Derby-user-mailing list archive