我想在Apache Derby 10.7中使用SEQUENCE支持。我用以下语句创建了序列:
CREATE SEQUENCE SAMPLE_SEQ AS INT MAXVALUE 999999 CYCLE;
如何从SAMPLE_SEQ
中选择下一个/当前值?你能帮我解决一下这个问题吗?
答案 0 :(得分:8)
答案 1 :(得分:3)
使用手册中记录的NEXT VALUE FOR:
http://db.apache.org/derby/docs/10.7/ref/rrefsqljnextvaluefor.html#rrefsqljnextvaluefor
答案 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)
如果您想从'序列'中获取'当前值':
使用JDBC在Java中相同:
ResultSet rs = conn.prepareStatement("values (next value for <sequence>)").executeQuery();
rs.next();
int seqValue = rs.getInt(1);