�存関係

Derby �準備済�文��存関係を追跡���。準備済�文��実行��コンパイル�れ�SQL文�事��。典型的�シナリオ�����れら�準備(プレコンパイル)�れ�後�複数回実行�れ��。

準備済ã?¿æ–‡ã?¯ãƒ‡ã‚£ã‚¯ã‚·ãƒ§ãƒŠãƒªã?®æƒ…報やã€?ã??れ自身ã?‹ã‚‰å?‚ç…§ã?™ã‚‹ä»–ã?®æ–‡ã?«ä¾?å­˜ã?—ã?¾ã?™ã€‚(ディクショナリã?®æƒ…å ±ã?¨ã?¯ã€?表・列・制約・索引・ビュー・トリガã?®ã?“ã?¨ã?§ã?™ã€‚) 準備済ã?¿æ–‡ã?Œä¾?å­˜ã?—ã?¦ã?„るディクショナリã?®æƒ…報や文ã?Œã€?破棄ã?•れã?Ÿã‚Šå¤‰æ›´ã?•れã?Ÿã‚Šã?™ã‚‹ã?¨ã€?内部的ã?«æº–備済ã?¿æ–‡ã?¯ç„¡åйã?¨ã?ªã‚Šã€?Derbyã?¯æº–備済ã?¿æ–‡ã?Œå®Ÿè¡Œã?•れるã?¨ã??ã€?自動的ã?«å†?コンパイルを行ã?Šã?†ã?¨ã?—ã?¾ã?™ã€‚ ã‚‚ã?—ã?“ã?®ã?¨ã??ã€?準備済ã?¿æ–‡ã?®å†?コンパイルã?Œå¤±æ•—ã?™ã‚‹ã?¨ã€?実行ã?¯å¤±æ•—ã?—ã?¾ã?™ã€‚ ã?—ã?‹ã?—ã?ªã?Œã‚‰ã€?ã‚‚ã?—何らã?‹ã?®å¯¾å¿œã‚’行ã?£ã?¦(ç„¡ã??ã?ªã?£ã?Ÿè¡¨ã‚’復活ã?•ã?›ã‚‹ã?ªã?©ã?—ã?¦)失ã‚?れã?Ÿä¾?存性を元ã?«æˆ»ã?›ã‚‹ã?®ã?ªã‚‰ã€?失敗ã?—ã?Ÿæº–備済ã?¿æ–‡ã‚’æˆ?功è£?ã?«å®Ÿè¡Œã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚ã?“れã?¯ã€?Derbyã?Œå†?実行ã?Œè¦?求ã?•れã?Ÿã?¨ã??ã€?å†?コンパイルを自動的ã?«è¡Œã?†ã?‹ã‚‰ã?§ã?™ã€‚

�互���存��文-UPDATE WHERE CURRENT文��照�る文��存���。�存�る文を破棄�る��UPDATE WHERE CURRENT文�無効��り��。

�ら�準備済�文��果�オープン���る場���る種�DDL文�実行を妨���。

ã??れã?žã‚Œã?®æ–‡ã?«å¯¾å¿œã?—ã?Ÿãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ã?®é ?ã?«ã?¯ã€?ã??ã?®æ–‡ã?Œæº–å‚™ã?•れã?Ÿå ´å?ˆã€?ã?©ã?®ã‚ˆã?†ã?ªã?“ã?¨ã‚’ã?™ã‚‹ã?¨ç„¡åйã?«ã?ªã‚‹ã?®ã?‹ã?Œæ›¸ã?‹ã‚Œã?¦ã?„ã?¾ã?™ã€‚

���Derby�ij���ツールを使��例を示���。
ij> CREATE TABLE mytable (mycol INT);
0 rows inserted/updated/deleted
ij> INSERT INTO mytable VALUES (1), (2), (3);
3 rows inserted/updated/deleted
-- ��例��ij�prepareコマンドを使���。
-- ��コマンド�より文�準備�れ��。
ij> prepare p1 AS 'INSERT INTO MyTable VALUES (4)';
-- p1�mytable��存���;
ij> execute p1;
1 row inserted/updated/deleted
-- Derby��コンパイル���文を実行���。
ij> CREATE INDEX i1 ON mytable(mycol);
0 rows inserted/updated/deleted
-- 新��索引����p1�一時的�無効��り��。
ij> execute p1;
1 row inserted/updated/deleted
-- Derby�自動的�p1を�コンパイル���実行���。
ij> DROP TABLE mytable;
0 rows inserted/updated/deleted
-- Derbyã?§ã?¯ä»¥ä¸‹ã?®ã‚ˆã?†ã?«è¡¨ã‚’破棄ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚
-- �れ�p1��果�閉���る�ら��。
-- �����らp1�一時的�無効��り��。
ij> CREATE TABLE mytable (mycol INT);
0 rows inserted/updated/deleted
ij> INSERT INTO mytable VALUES (1), (2), (3);
3 rows inserted/updated/deleted
ij> execute p1;
1 row inserted/updated/deleted
-- p1�無効�����る���Derby�実行����コンパイルを行���。
-- å†?コンパイルã?¯æˆ?功ã?—ã?¦ã€?æ–‡ã?¯å®Ÿè¡Œã?§ã??ã?¾ã?™ã€‚
ij> DROP TABLE mytable;
0 rows inserted/updated/deleted
-- p1�無効��。
-- 今度�最コンパイル�よ����も失敗�る���
-- 実行も失敗��。
ij> execute p1;
ERROR 42X05: Table/View 'MYTABLE' does not exist.