DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#実装編】 【DB2逆引きリファレンス目次#表とビュー

前提

解説

一時表(宣言済み一時表)を定義するには、DECLARE GLOBAL TEMPORARY TABLEを用います。

DECLARE GLOBAL TEMPORARY TABLE 表名 表定義
  [ON COMMIT RESERVE ROWS]
  [NOT LOGGED]
  [WITH REPLACE]
  [IN 表スペース名 ]

表名
: 定義する一時表の名前を指定します。

表定義
: 一時表の定義を以下のいずれかの形式で指定します。

( 列定義 )
: 表に含まれる列を以下の形式で指定します。複数の列を定義する場合はカンマで区切って並べます。 列名 列の型 [, 列名 列の型, ....]

LIKE 表もしくはビュー名
: 表の列定義を、指定した表もしくはビューのものと同じものにします。

AS ( 全選択 ) DEFINITION ONLY
: 表の列定義を、全選択による照会結果と同じものにします。

ON COMMIT RESERVE ROWS
: デフォルトではコミット時に一時表の行はすべて削除されます。このオプションを指定するとコミット時に削除を行いません。この場合、セッション終了時に行が削除されます。

NOT LOGGED
: 表の作成を含め、表に対して行った変更をログに記録しません。

WITH REPLACE
: 既存で同じ名前の一時表が存在する場合、その一時表を新たに定義する一時表で置き換えます。このオプションを指定しなかった場合、既存の一時表と同じ名前の一時表は定義できません。

IN 表スペース名
: 一時表を作成するUSER TEMPORARY表スペースの名前を指定します。

使用例

列を指定して一時表(ここではusertmp1)を定義する例。

db2 ==> DECLARE GLOBAL TEMPORARY TABLE usertmp1 (name CHAR(8), total INT)↓

他の表(ここではmaster)を用いて一時表(ここではusertmp2)を定義する例。

db2 ==> DECLARE GLOBAL TEMPORARY TABLE usertmp2 LIKE master↓

全選択を用いて一時表(ここではusertmp3)を定義する例。

db2 ==> DECLARE GLOBAL TEMPORARY TABLE usertmp3 AS ( SELECT name, SUM(amount) AS total FROM parts GROUP BY name ) DEFINITION ONLY↓

注意

参照