


SEQUENCE


シーケンスの作成
CREATE SEQUENCE SAMPLE_SEQ AS INT MAXVALUE 999999 CYCLE;



呼び出し
SELECT NEXT VALUE FOR SAMPLE_SEQ;



呼び出し
SELECT CURRENTVALUE FROM SYS.SYSSEQUENCES WHERE SEQUENCENAME='SAMPLE_SEQ'




呼び出し
values NEXT VALUE FOR SAMPLE_SEQ


=====================================================

show schemas スキーマ一覧を表示する。
show tables テーブル一覧を表示する。 「show tables in APP;」でAPPスキーマのテーブルのみ表示する。
show views ビュー一覧を表示する。
show indexes  インデックス一覧を表示する。
 項目名も表示される。 「show indexes from TEST;」でTESTテーブルのインデックスが表示される。
describe テーブルの定義を表示する。 「describe TEST;」でTESTテーブルの定義が表示される。



SELECT A.CONSTRAINTNAME,A.TYPE,A.STATE,B.ISINDEX,B.ISCONSTRAINT,B.DESCRIPTOR
FROM SYS.SYSCONSTRAINTS A inner join SYS.SYSCONGLOMERATES B
		on A.TABLEID = B.TABLEID
order by A.CONSTRAINTNAME


CONSTRAINTNAME	索引名
TYPE			P (主キー)、U (一意性)、C (チェック)、 あるいは F (外部キー)
STATE			有効ならE、無効ならD

DESCRIPTOR		索引を記述
ISINDEX			索引か否か
ISCONSTRAINT	自動的に出力


select TABLENAME,TABLETYPE from SYS.SYSTABLES
where TABLETYPE != 'S'
order by TABLENAME

TABLETYPE		'S' (システム表)、'T' (ユーザ表)あるいは 'V' (ビュー)



=====================================================
https://seraphy.hatenablog.com/entry/20120729/p1
「SYSIBM.SYSDUMMY1」というテーブルが過去の遺物として残されている。
Apache Derbyでは、OracleのDual表のかわりとしてはValues Expressionを使うのが良く

-- valuesでダミー表を作る
select current_date from (values 1) dual;

-- valuesで行セットを作る
select dt from (values current_date) as t(dt);

