1

主キーを自動インクリメントするテーブルがあります。この値が現在 HSQLDB で SQL を使用しているものを返すにはどうすればよいですか?

私はこの答えを見つけましたが、特定のテーブルからそれを取得する方法の完全な説明はありません。

4

1 に答える 1

3

主キー列が 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
于 2013-10-31T11:44:09.673 に答える