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ã?§ã?¯åˆ—定義ã?«ç™ºç•ªåˆ—仕様ã?¯ä¸?å?¯èƒ½ã?§ã?™ã€‚
表ã?«é–‹ã?„ã?Ÿã‚«ãƒ¼ã‚½ãƒ«ã?Œç„¡ã?‘れã?°ã€?表ä¸ã?®å…¨ã?¦ã?®è¡Œã?Œå‰Šé™¤ã?•れã?¾ã?™ã€‚ã?“れã?¯ON COMMITã?®æ—¢å®šã?§ã?™ã€‚ ã‚‚ã?—ON ROLLBACK DELETE ROWSを指定ã?—ã?Ÿå ´å?ˆã?¯ã€?一時表ã?Œä½¿ã‚?れã?Ÿå ´å?ˆã?®ã?¿å…¨ã?¦ã?®è¡Œã?Œå‰Šé™¤ã?•れã?¾ã?™ã€‚ ON COMMIT DELETE ROWSを指定ã?—ã?Ÿå ´å?ˆã?¯ã€?一時表ã?Œä½¿ã‚?れã?ªã?‹ã?£ã?Ÿå ´å?ˆã?§ã‚‚表ã?®è¡Œã?Œå‰Šé™¤ã?•れã?¾ã?™(é–‹ã?„ã?Ÿã‚«ãƒ¼ã‚½ãƒ«ã?Œç„¡ã?‹ã?£ã?Ÿå ´å?ˆã?§ã?™ã€‚)。
表�行�留�置�れ��。
トランザクションã?Œãƒãƒ¼ãƒ«ãƒ?ックã?•れã?Ÿã?¨ã??ã€?一時表ã?«è¡Œã‚?れるアクションを指定ã?—ã?¾ã?™ã€‚ ROLLBACK(ã?‚ã‚‹ã?„ã?¯ROLLBACK TO SAVEPOINT)ã?Œè¡Œã‚?れるã?¨ã€?作æ¥å?˜ä½?(ã‚‚ã?—ã??ã?¯ã‚»ãƒ¼ãƒ–ãƒ?イント)ã?«ã?¦è¡¨ã?Œä½œã‚‰ã‚Œã?¦ã?„れã?°ã€?ã??ã?®è¡¨ã?¯ç ´æ£„ã?•れã?¾ã?™ã€‚ã‚‚ã?—作æ¥å?˜ä½?(ã‚‚ã?—ã??ã?¯ã‚»ãƒ¼ãƒ–ãƒ?イント)ã?«ã?¦è¡¨ã?Œç ´æ£„ã?•れã?Ÿå ´å?ˆã€?行ã?®ã?ªã?„表ã?Œå¾©å…ƒã?•れã?¾ã?™ã€‚
ã?“れã?¯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"ã?¯å®Ÿè¡¨ã‚’å?‚ç…§ã?—ã?¾ã?™ã€‚
Derbyã?§ã?¯ä¸€æ™‚表ã?«æ¬¡ã?®æ©Ÿèƒ½ã‚’æ??ä¾›ã?—ã?¦ã?„ã?¾ã?›ã‚“。 ã?“れらã?®æ©Ÿèƒ½ã?®å¹¾ã?¤ã?‹ã?¯ä¸€æ™‚表特有ã?®ã‚‚ã?®ã?§ã?‚りã€?å¹¾ã?¤ã?‹ã?¯Derby特有ã?®ã‚‚ã?®ã?§ã?™ã€‚
一時表��次�機能を使���ん。
一時表ã?¸ã?®æŒ¿å…¥ã€?æ›´æ–°ã€?削除ã?®æ–‡ã?«ã?¦ã‚¨ãƒ©ãƒ¼ã?Œèµ·ã??ã?Ÿå ´å?ˆã€?一時表ã?®å…¨ã?¦ã?®è¡Œã?¯å‰Šé™¤ã?•れã?¾ã?™ã€‚