【发布时间】:2013-10-31 09:44:50
【问题描述】:
我有一个自动递增其主键的表。如何返回这个值当前在 HSQLDB 中使用的 SQL?
我找到了this answer,但它没有完整说明如何从特定表中获取它。
【问题讨论】:
我有一个自动递增其主键的表。如何返回这个值当前在 HSQLDB 中使用的 SQL?
我找到了this answer,但它没有完整说明如何从特定表中获取它。
【问题讨论】:
如果主键列被声明为 IDENTITY,那么我看不到获取当前值的方法,除了调用另一个答案中描述的 IDENTITY(),它没有给出答案具体表。
另一种方法是创建主键列以使用特定的序列生成器而不是 IDENTITY。然后您可以从INFORMATION_SCHEMA.SEQUENCE 表中选择序列的当前值。
下面的示例显示了它的工作原理。
create sequence test_seq;
create table test (
id integer generated by default as sequence test_seq,
value varchar(10));
insert into test (value) values ('foo');
insert into test (value) values ('bar');
insert into test (value) values ('bash');
select * from test;
id value
0 'foo'
1 'bar'
2 'bash'
select next_value from information_schema.sequences where sequence_name = 'TEST_SEQ'
3
【讨论】: