一時表を定義するには

提供: DB2逆引きWiki
移動: 案内, 検索

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

目次

前提

  • データベース接続が必要
  • 以下のいずれかが必要: SYSADM権限, DBADM権限, USER TEMPORARY表スペースに対するUSE特権
  • LIKEまたは全選択を用いて表を定義する場合は、その全選択を実行する権限が必要です

解説

一時表(宣言済み一時表)を定義するには、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↓

注意

  • USER TEMPORARY表スペースが少なくともひとつ定義されている必要があります。

参照

個人用ツール
名前空間

変種
操作
案内
ツール