DECLARE GLOBAL TEMPORARY TABLE æ–‡

The DECLARE GLOBAL TEMPORARY TABLE statement defines a temporary table for the current connection.

ã?“れらã?®è¡¨ã?¯ã‚·ã‚¹ãƒ†ãƒ ã‚«ã‚¿ãƒ­ã‚°ã?«ã?‚ã‚‹ã‚‚ã?®ã?§ã?¯ã?ªã??永続的ã?ªã‚‚ã?®ã?§ã?¯ã?‚りã?¾ã?›ã‚“。一時表ã?¯ä½œæˆ?ã?—ã?ŸæŽ¥ç¶šã?®æœŸé–“ã?®ã?¿å­˜åœ¨ã?—ã?¦ã€?ä»–ã?®æŽ¥ç¶šã?‹ã‚‰å?‚ç…§ã?™ã‚‹ã?“ã?¨ã?¯ã?§ã??ã?¾ã?›ã‚“。接続ã?Œé–‰ã?˜ã‚‹ã?¨ã??ã€? 表中ã?®è¡Œã?¯å‰Šé™¤ã?•れã€?一時表ã?«é–¢ã?™ã‚‹ãƒ¡ãƒ¢ãƒªä¸Šã?®è¨˜è¿°ã?¯ç ´æ£„ã?•れã?¾ã?™ã€‚

一時表�以下�よ��場��便利��。
  • 表ã?®æ§‹é€ ã?Œã‚¢ãƒ—リケーションを使ã?†å‰?ã?§ã?¯åˆ†ã?‹ã‚‰ã?ªã?„å ´å?ˆ
  • ä»–ã?®ãƒ¦ãƒ¼ã‚¶ã?Œå?Œæ§˜ã?ªæ§‹é€ ã?®è¡¨ã‚’å¿…è¦?ã?¨ã?—ã?ªã?„å ´å?ˆ
  • アプリケーションを使ã?£ã?¦ã?„ã‚‹å ´å?ˆã?®ã?¿ã€?一時表ã?®æƒ…å ±ã?Œå¿…è¦?ã?ªå ´å?ˆ
  • システムカタログã?«ãƒ­ãƒƒã‚¯ã‚’æŒ?ã?Ÿã?šã?«ã€?表ã?®å®šç¾©ã?¨ç ´æ£„ã?Œå?¯èƒ½ã?ªå ´å?ˆ

æ§‹æ–‡

DECLARE GLOBAL TEMPORARY TABLE 表å??
    { 列定義 [ , 列定義 ] * }
[ ON COMMIT {DELETE | PRESERVE} ROWS ]  
NOT LOGGED [ON ROLLBACK DELETE ROWS]
 

表å??

一時表ã?®å??å‰?ã?§ã?™ã€‚SESSION以外ã?®ã‚¹ã‚­ãƒ¼ãƒžå??ã?ŒæŒ‡å®šã?•れã?Ÿå ´å?ˆã€?エラーã?Œç™ºç”Ÿã?—ã?¾ã?™ã€‚(SQLSTATE 428EK) スキーマå??ã?ŒæŒ‡å®šã?•れã?ªã?‹ã?£ã?Ÿå ´å?ˆã€?SESSIONã?Œã?‚ã?¦ã‚‰ã‚Œã?¾ã?™ã€‚ 複数ã?®æŽ¥ç¶šã?§å?Œã?˜å??å‰?ã?®ä¸€æ™‚表を作るã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚ã?ªã?œã?ªã‚‰ã??れã?žã‚Œã?®æŽ¥ç¶šã?¯å€‹ã€…ã?«ä¸€æ„?ã?ªè¡¨ã?®è¨˜è¿°å­?ã‚’æŒ?ã?¤ã?‹ã‚‰ã?§ã?™ã€‚

SESSIONを永続的ã?ªè¡¨ã?®ã‚¹ã‚­ãƒ¼ãƒžã?¨ã?—ã?¦ä½¿ã?£ã?¦ã‚‚エラーã?«ã?¯ã?ªã‚Šã?¾ã?›ã‚“ã?ŒæŽ¨å¥¨ã?—ã?¾ã?›ã‚“。 SESSIONã?¨ã?„ã?†ã‚¹ã‚­ãƒ¼ãƒžå??ã?¯ä¸€æ™‚表ã?®ã‚¹ã‚­ãƒ¼ãƒžç”¨ã?«äºˆç´„ã?•れã?¦ã?„ã?¾ã?™ã€‚

列定義

列定義ã?®è©³ç´°ã?«ã?¤ã?„ã?¦ã?¯åˆ—定義ã?®CREATE TABLEã‚’å?‚ç…§ã?—ã?¦ã??ã? ã?•ã?„。 DECLARE GLOBAL TEMPORARY TABLEã?§ã?¯åˆ—定義ã?«ç™ºç•ªåˆ—仕様ã?¯ä¸?å?¯èƒ½ã?§ã?™ã€‚

データ型

�能�データ型�以下���り��。
  • BIGINT
  • CHAR
  • DATE
  • DECIMAL
  • DOUBLE
  • DOUBLE PRECISION
  • FLOAT
  • INTEGER
  • NUMERIC
  • REAL
  • SMALLINT
  • TIME
  • TIMESTAMP
  • VARCHAR

ON COMMIT

COMMITã?Œè¡Œã‚?れã?Ÿã?¨ã??ã?®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’指定ã?—ã?¾ã?™ã€‚

DELETE ROWS

表�開��カーソル�無�れ��表中�全��行�削除�れ��。�れ�ON COMMIT�既定��。 も�ON ROLLBACK DELETE ROWSを指定��場���一時表�使�れ�場���全��行�削除�れ��。 ON COMMIT DELETE ROWSを指定��場���一時表�使�れ����場��も表�行�削除�れ��(開��カーソル�無���場���。)。

PRESERVE ROWS

表�行�留�置�れ��。

NOT LOGGED

トランザクションã?Œãƒ­ãƒ¼ãƒ«ãƒ?ックã?•れã?Ÿã?¨ã??ã€?一時表ã?«è¡Œã‚?れるアクションを指定ã?—ã?¾ã?™ã€‚ ROLLBACK(ã?‚ã‚‹ã?„ã?¯ROLLBACK TO SAVEPOINT)ã?Œè¡Œã‚?れるã?¨ã€?作業å?˜ä½?(ã‚‚ã?—ã??ã?¯ã‚»ãƒ¼ãƒ–ãƒ?イント)ã?«ã?¦è¡¨ã?Œä½œã‚‰ã‚Œã?¦ã?„れã?°ã€?ã??ã?®è¡¨ã?¯ç ´æ£„ã?•れã?¾ã?™ã€‚ã‚‚ã?—作業å?˜ä½?(ã‚‚ã?—ã??ã?¯ã‚»ãƒ¼ãƒ–ãƒ?イント)ã?«ã?¦è¡¨ã?Œç ´æ£„ã?•れã?Ÿå ´å?ˆã€?行ã?®ã?ªã?„表ã?Œå¾©å…ƒã?•れã?¾ã?™ã€‚

ON ROLLBACK DELETE ROWS

ã?“れã?¯NOT LOGGEDã?®æ—¢å®šã?§ã?™ã€‚NOT LOGGED [ON ROLLBACK DELETE ROWS ]]ã?«ã‚ˆã‚Šã€?ROLLBACKã?‚ã‚‹ã?„ã?¯ROLLBACK TO SAVEPOINTã?Œè¡Œã‚?れã?Ÿã?¨ã??一時表ã?«è¡Œã‚?れる処ç?†ã?ŒæŒ‡å®šã?•れã?¾ã?™ã€‚ã‚‚ã?—表ã?®æƒ…å ±ã?Œå¤‰æ›´ã?•れã?¦ã?„れã?°ã€?全行ã?Œå‰Šé™¤ã?•れã?¾ã?™ã€‚

例

set schema myapp;

create table t1(c11 int, c12 date);

declare global temporary table SESSION.t1(c11 int) not logged;
-- 一時表�SESSIONスキーマ���置�れ�����
-- SESSION�よる�定�冗長��。
declare global temporary table t2(c21 int) not logged; 
-- 一時表�SESSIONスキーマ���置�れ�����
-- ��例��SESSION�より�定���ん。

insert into SESSION.t1 values (1); 
-- �在�スキーマ�"myapp."����一時表を使���SESSION�よる�定�必須��。

select * from t1; 
-- 表�SESSION�より�定�れ�������
-- ��select文�"myapp.t1"�実表を�照���。

注: 一時表ã?¯SESSIONスキーマã?«ã?®ã?¿å®šç¾©ã?§ã??ã?¾ã?™ã€‚ ユーザã?¯SESSIONã?¨ã?„ã?†å??å‰?ã?®å®Ÿã‚¹ã‚­ãƒ¼ãƒžã‚’定義ã?™ã‚‹ã?¹ã??ã?§ã?¯ã?‚りã?¾ã?›ã‚“。
次�DB2 UDB���能�DECLARE GLOBAL TEMPORARY TABLE関数��Derby��使���ん。
  • IDENTITY column-options
  • IDENTITY attribute in copy-options
  • AS (fullselect) DEFINITION ONLY
  • NOT LOGGED ON ROLLBACK PRESERVE ROWS
  • IN tablespace-name
  • PARTITIONING KEY
  • WITH REPLACE

Declared Global Temporary Tables�制�事項

Derbyã?§ã?¯ä¸€æ™‚表ã?«æ¬¡ã?®æ©Ÿèƒ½ã‚’æ??ä¾›ã?—ã?¦ã?„ã?¾ã?›ã‚“。 ã?“れらã?®æ©Ÿèƒ½ã?®å¹¾ã?¤ã?‹ã?¯ä¸€æ™‚表特有ã?®ã‚‚ã?®ã?§ã?‚りã€?å¹¾ã?¤ã?‹ã?¯Derby特有ã?®ã‚‚ã?®ã?§ã?™ã€‚

以下ã?®æ–‡ã?§ã?¯ä¸€æ™‚表を指定ã?§ã??ã?¾ã?›ã‚“。
  • ALTER TABLE
  • CREATE INDEX
  • CREATE SYNONYM
  • CREATE TRIGGER
  • CREATE VIEW
  • GRANT
  • LOCK TABLE
  • RENAME
  • REVOKE

一時表��次�機能を使���ん。

一時表ã?¸ã?®æŒ¿å…¥ã€?æ›´æ–°ã€?削除ã?®æ–‡ã?«ã?¦ã‚¨ãƒ©ãƒ¼ã?Œèµ·ã??ã?Ÿå ´å?ˆã€?一時表ã?®å…¨ã?¦ã?®è¡Œã?¯å‰Šé™¤ã?•れã?¾ã?™ã€‚

一時表ã?«ã?¦ä»¥ä¸‹ã?®ãƒ‡ãƒ¼ã‚¿åž‹ã?¯åˆ©ç”¨ã?§ã??ã?¾ã?›ã‚“。
  • BLOB
  • CHAR FOR BIT DATA
  • CLOB
  • LONG VARCHAR
  • LONG VARCHAR FOR BIT DATA
  • VARCHAR FOR BIT DATA
  • XML