获取HSQLDB中自动增量变量的值

时间:2013-10-31 09:44:50

标签: sql hsqldb

我有一个自动递增其主键的表。如何在HSQLDB中使用SQL返回此值当前的值?

我找到this answer,但它没有给出如何从特定表中获取它的完整说明。

1 个答案:

答案 0 :(得分:2)

如果主键列被声明为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