H2 Database EngineのIDENTITY使用時に作られるシーケンス名について

はじめに

先日職場で「H2 Database EngineのIDENTITYで作られたシーケンスの名前が分からないのだが」という話題があったのでメモ。

環境

  • H2 Version 1.3.168 (2012-07-13)

シーケンス名の調べ方

 以下のSQLを実行するとテーブル定義を参照することができます。
 そうすると、シーケンス名も分かります。

SELECT SQL FROM INFORMATION_SCHEMA.TABLES 

 たとえば、以下のSQLでテーブルを作ったとしましょう。

CREATE TABLE EMP
(
    ID Integer IDENTITY ,
    NAME VARCHAR  ,
    primary key(
            ID 
    )
);

 INFORMATION_SCHEMA.TABLES には、以下の定義で格納されていたりします。

CREATE CACHED TABLE PUBLIC.EMP(
    ID INTEGER DEFAULT (NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_E700A7E6_D2D9_4890_84F8_C2978859AE24) NOT NULL NULL_TO_DEFAULT SEQUENCE PUBLIC.SYSTEM_SEQUENCE_E700A7E6_D2D9_4890_84F8_C2978859AE24,
    NAME VARCHAR
)

さいごに

 ちょっとしたメモでした。
 調べてみないとわからないよね、こういうの。