TOP をテンプレートにして作成
ホーム
バックアップ
一覧
検索
最終更新
ヘルプ
ログイン
開始行
[[FrontPage]]へ~
-[[リファレンスガイド]]へ~
--[[Firebird SQLリファレンス]]へ~
----
*Firebird SQLリファレンス:SET TRANSACTION, COMMIT, ROLLBA...
#contents
&name(set_transaction);
*SET TRANSACTION [#m7981d71]
動作オプションをつけてトランザクションを開始します。 SQ...
**構文 [#r2dfa3a5]
SET TRANSACTION [NAME transaction]
[READ WRITE | READ ONLY]
[WAIT | NO WAIT]
[[ISOLATION LEVEL] {SNAPSHOT [TABLE STABILITY]
| READ COMMITTED [[NO] RECORD_VERSION]}]
[RESERVING <reserving_clause> | USING dbhandle [, dbh...
<reserving_clause> = table [, table …]
[FOR [SHARED | PROTECTED] {READ | WRITE}] [, <reservi...
※ DSQLで使用する場合、終端文字のセミコロンは不要です。 i...
|引数|説明|h
|NAME transaction|トランザクションの名前を指定します。|
|~|・初期化されたホスト言語変数で指定できます。|
|~|・SQL でのみ使用できます。|
|READ WRITE|デフォルトです。テーブルの読書き両方を行いま...
|READ ONLY|トランザクションでは読込みのみ行います。|
|WAIT|デフォルトです。他のトランザクションとコンフリクト...
|NO WAIT|他のトランザクションとコンフリクトした場合、エラ...
|ISOLATION LEVEL|他トランザクションと同時にアクセスする場...
|RESERVING reserving_clause|トランザクションの開始時に、...
|USING dbhandle [, dbhandle …]|データベースのアクセスを限...
**詳細の説明 [#x4239c81]
SET TRANSACTION により、トランザクションを開始します。...
また、テーブルをアクセスするための事前予約も出来ます。...
重要 gpre -manualの指定を行ってプリプロセスしたアプリケ...
SET TRANSACTION の NAME 節で名前の指定を行わないと、デ...
デフォルトでのトランザクションのアクセス方法指定は READ...
もしも、同じ(同名)トランザクションにおいて同じデータの...
ISOLATION LEVEL(アイソレーションレベル)は、同じテーブル...
SNAPSHOT TABLE STABILIT を指定し、トランザクションがテ...
READ COMMITTED を指定することにより、トランザクション中...
-NO RECORD_VERSION (省略時デフォルト)確定した最新の行を読...
-RECORD_VERSION 未完のトランザクションにさらに新しくなる...
RESERVING節を指定してトランザクションを開始することによ...
(訳注: アクセスレベルは、共有レベルの SHARED/PROTECTED と...
SQLでのみ使用可能な USING 節は、トランザクションでアク...
**用例 [#k709b53f]
例は、すべて埋め込みSQLでの例です。
-無名(デフォルト)のトランザクションを開始します。アイソレ...
EXEC SQL
SET TRANSACTION WAIT ISOLATION LEVEL READ COMMITTED;
-名前付きトランザクションの例です。
EXEC SQL
SET TRANSACTION NAME T1 READ COMMITTED;
-トランザクション開始時に、テーブルを3つ予約してます。
EXEC SQL
SET TRANSACTION NAME TR1
WAIT
ISOLATION LEVEL READ COMMITTED NO RECORD_VERSION
RESERVING TABLE1, TABLE2 FOR SHARED WRITE,
TABLE3 FOR PROTECTED WRITE;
※以下はisqlでの例ですが、訳者が独自に付け足したものです。
-READ COMMITED の単純な例です。省略可能な句は省略してしま...
SET TRANSACTION READ COMMITTED;
-テーブル予約の例です。PROTECTED WRITE で予約していますの...
SET TARNSACTION WAIT
ISOLATION LEVEL READ COMMITTED NO RECORD_VERSION
RESERVING TABLE1 FOR PROTECTED WRITE;
**参照 [#yd02d833]
[[COMMIT>#commit]] , [[ROLLBACK>#rollback]] , [[SET NAM...
より詳細が知りたい場合は、Embedded SQL Guide の transac...
----
&aname(commit);
*COMMIT [#k9daa8dc]
トランザクションで生じたデータベースへの変更を反映させ...
**構文 [#sbb727b1]
COMMIT [WORK] [TRANSACTION name] [RELEASE] [RETAIN [SNAP...
※ DSQLで使用する場合、終端文字のセミコロンは不要です。 i...
|引数|説明|h
|WORK|オプション指定できますが、これは他のRDBとの互換性の...
|TRANSACTION name|コミットするトランザクションの名前です...
|RELEASE|旧バージョンInterBase?との互換性のために用意され...
|RETAIN [SNAPSHOT]|変更のコミットと、トランザクションコン...
**詳細の説明 [#iea3c10d]
COMMIT によりトランザクションが終了します。と同時に、
-すべての変更をデータベースに書き出します。
-以降の SNAPSHOT や READ COMMITED のトランザクションで変...
-RETAINを指定しない限り、オープンされたカーソルがあったら...
COMMIT で終了するトランザクションは、一般的に成功した場...
※読込みのみと宣言して開始したトランザクションでデータベー...
''重要'' RELEASE は、古いバージョンのInterBase?との互換...
**用例 [#za294a6e]
-isqlでの例です。デフォルトのトランザクションで行ったデー...
COMMIT;
-埋め込み SQL で、名前付きトランザクションの場合の例です。
EXEC SQL
COMMIT TR1;
-埋め込みSQLで、トランザクションコンテキストを保持したま...
EXEC SQL
COMMIT RETAIN;
**参照 [#hc4a88a8]
DISCONNECT , [[ROLLBACK>#rollback]]
より詳細が知りたい場合は、Embedded SQL Guide の transac...
----
&aname(rollback);
*ROLLBACK [#v810a2db]
トランザクションで生じたデータベースへの変更を取り消し...
この文書は、Firebird 1.5 リリースノートを基として内容を...
*構文 [#u897ed7a]
ROLLBACK [TRANSACTION name] [WORK] [RELEASE];
1.5以降のDSQLでは、セーブポイント指定が可能です。
ROLLBACK [WORK] TO [SAVEPOINT] <identifier>;
※ DSQLで使用する場合、終端文字のセミコロンは不要です。 i...
|引数|説明|h
|WORK|オプション指定できますが、これは他のRDBとの互換性の...
|TRANSACTION name|ロールバックするトランザクションの名前...
|RELEASE|旧バージョンInterBase?との互換性のために用意され...
|TO [SAVEPOINT] <idenrifier>|ロールバックするセ...
**詳細の説明 [#y689876d]
ROLLBACK により、現在のトランザクションでのデータベース...
TRANSACTION でトランザクション名を指定することにより、...
''重要'' RELEASE は、古いバージョンのInterBase?との互換...
Firebird 1.5 以降では、DSQLにおいてロールバックするセー...
**用例 [#l302cf0c]
-isqlでの例です。デフォルトのトランザクションをロールバッ...
ROLLBACK;
-埋め込みSQLプログラムで、名前付きトランザクションをロー...
EXEC SQL
ROLLBACK TRANSACTION MYTRANS;
*参照 [#l16e396c]
[[COMMIT>#commit]] , DISCONNECT , [[SAVEPOINT>#savepoint]]
より詳細が知りたい場合は、Embedded SQL Guide の transac...
----
&aname(savepoint);
*SAVEPOINT [#m441093f]
トランザクションをロールバックするときに、任意の位置へ...
この文書は、Firebird 1.5 リリースノートを基としています。
**構文 [#p1699b44]
SAVEPOINT <identifier>;
|引数|説明|h
|identifier|セーブポイントを識別するための識別名です。対...
**詳細の説明 [#ed7313ab]
SAVEPOINT により、任意の時点へのロールバックを行うため...
トランザクションをあるセーブポイント時点へロールバック...
-トランザクションでセーブポイント以降に行われた変更はロー...
-そのセーブポイント以降に作成されたセーブポイントを消去し...
-セーブポイント以降に行われた、暗黙的・明示的な行ロックを...
同一トランザクションで同じレコードの更新を何度も行った...
識別子を指定して RELEASE SAVEPOINT 文を実行すると、その...
このとき、ONLY識別子の指定を省略すると、それ以降のセー...
RELEASE SAVEPOINT の構文に関しては、RELEASE SAVEPOINT ...
-内部セーブポイント
--デフォルトでは、データベースエンジンは自動的にトランザ...
--トランザクションレベルのセーブポイント下において、デー...
--ユーザーがトランザクション下におけるレコードの大量変更...
-PSQLに関して
--PSQLにはユーザーレベルのSAVEPOINTを実装していません。PS...
--SQL/PSQLは、自動的に内部セーブポイントを使用して実行さ...
**用例 [#h3aa3ccc]
テーブルを新規作成して列を挿入し、セーブポイントの動作...
create table test (id integer);
commit;
insert into test values (1);
commit;
insert into test values (2);
savepoint y;
delete from test;
select * from test; -- returns no rows
rollback to y;
select * from test; -- returns two rows
rollback;
select * from test; -- returns one row
**参照 [#l3b10455]
[[ROLLBACK>#rollback]] , [[RELEASE SAVEPOINT>#release_s...
----
&aname(release_savepoint);
*RELEASE SAVEPOINT [#z9c2d8bf]
セーブポイントを削除します。 DSQL,isqlで使用できます。
この文書は、Firebird 1.5 リリースノートの情報を基として...
**構文 [#y47c3fb6]
RELEASE SAVEPOINT <identifier> [ONLY];
|引数|説明|h
|identifier|既存のセーブポイントを識別するための識別名で...
|ONLY|指定したセーブポイントのみを削除します。省略すると...
**詳細の説明 [#b7445448]
RELEASE SAVEPOINT により、指定した既存のセーブポイント...
同一トランザクションで同じレコードの更新を何度も行った...
識別子を指定して RELEASE SAVEPOINT 文を実行すると、その...
このとき、ONLY識別子の指定を省略すると、それ以降のセー...
**参照 [#re4bcd17]
[[SAVEPOINT>#savepoint]]
最終行:
[[FrontPage]]へ~
-[[リファレンスガイド]]へ~
--[[Firebird SQLリファレンス]]へ~
----
*Firebird SQLリファレンス:SET TRANSACTION, COMMIT, ROLLBA...
#contents
&name(set_transaction);
*SET TRANSACTION [#m7981d71]
動作オプションをつけてトランザクションを開始します。 SQ...
**構文 [#r2dfa3a5]
SET TRANSACTION [NAME transaction]
[READ WRITE | READ ONLY]
[WAIT | NO WAIT]
[[ISOLATION LEVEL] {SNAPSHOT [TABLE STABILITY]
| READ COMMITTED [[NO] RECORD_VERSION]}]
[RESERVING <reserving_clause> | USING dbhandle [, dbh...
<reserving_clause> = table [, table …]
[FOR [SHARED | PROTECTED] {READ | WRITE}] [, <reservi...
※ DSQLで使用する場合、終端文字のセミコロンは不要です。 i...
|引数|説明|h
|NAME transaction|トランザクションの名前を指定します。|
|~|・初期化されたホスト言語変数で指定できます。|
|~|・SQL でのみ使用できます。|
|READ WRITE|デフォルトです。テーブルの読書き両方を行いま...
|READ ONLY|トランザクションでは読込みのみ行います。|
|WAIT|デフォルトです。他のトランザクションとコンフリクト...
|NO WAIT|他のトランザクションとコンフリクトした場合、エラ...
|ISOLATION LEVEL|他トランザクションと同時にアクセスする場...
|RESERVING reserving_clause|トランザクションの開始時に、...
|USING dbhandle [, dbhandle …]|データベースのアクセスを限...
**詳細の説明 [#x4239c81]
SET TRANSACTION により、トランザクションを開始します。...
また、テーブルをアクセスするための事前予約も出来ます。...
重要 gpre -manualの指定を行ってプリプロセスしたアプリケ...
SET TRANSACTION の NAME 節で名前の指定を行わないと、デ...
デフォルトでのトランザクションのアクセス方法指定は READ...
もしも、同じ(同名)トランザクションにおいて同じデータの...
ISOLATION LEVEL(アイソレーションレベル)は、同じテーブル...
SNAPSHOT TABLE STABILIT を指定し、トランザクションがテ...
READ COMMITTED を指定することにより、トランザクション中...
-NO RECORD_VERSION (省略時デフォルト)確定した最新の行を読...
-RECORD_VERSION 未完のトランザクションにさらに新しくなる...
RESERVING節を指定してトランザクションを開始することによ...
(訳注: アクセスレベルは、共有レベルの SHARED/PROTECTED と...
SQLでのみ使用可能な USING 節は、トランザクションでアク...
**用例 [#k709b53f]
例は、すべて埋め込みSQLでの例です。
-無名(デフォルト)のトランザクションを開始します。アイソレ...
EXEC SQL
SET TRANSACTION WAIT ISOLATION LEVEL READ COMMITTED;
-名前付きトランザクションの例です。
EXEC SQL
SET TRANSACTION NAME T1 READ COMMITTED;
-トランザクション開始時に、テーブルを3つ予約してます。
EXEC SQL
SET TRANSACTION NAME TR1
WAIT
ISOLATION LEVEL READ COMMITTED NO RECORD_VERSION
RESERVING TABLE1, TABLE2 FOR SHARED WRITE,
TABLE3 FOR PROTECTED WRITE;
※以下はisqlでの例ですが、訳者が独自に付け足したものです。
-READ COMMITED の単純な例です。省略可能な句は省略してしま...
SET TRANSACTION READ COMMITTED;
-テーブル予約の例です。PROTECTED WRITE で予約していますの...
SET TARNSACTION WAIT
ISOLATION LEVEL READ COMMITTED NO RECORD_VERSION
RESERVING TABLE1 FOR PROTECTED WRITE;
**参照 [#yd02d833]
[[COMMIT>#commit]] , [[ROLLBACK>#rollback]] , [[SET NAM...
より詳細が知りたい場合は、Embedded SQL Guide の transac...
----
&aname(commit);
*COMMIT [#k9daa8dc]
トランザクションで生じたデータベースへの変更を反映させ...
**構文 [#sbb727b1]
COMMIT [WORK] [TRANSACTION name] [RELEASE] [RETAIN [SNAP...
※ DSQLで使用する場合、終端文字のセミコロンは不要です。 i...
|引数|説明|h
|WORK|オプション指定できますが、これは他のRDBとの互換性の...
|TRANSACTION name|コミットするトランザクションの名前です...
|RELEASE|旧バージョンInterBase?との互換性のために用意され...
|RETAIN [SNAPSHOT]|変更のコミットと、トランザクションコン...
**詳細の説明 [#iea3c10d]
COMMIT によりトランザクションが終了します。と同時に、
-すべての変更をデータベースに書き出します。
-以降の SNAPSHOT や READ COMMITED のトランザクションで変...
-RETAINを指定しない限り、オープンされたカーソルがあったら...
COMMIT で終了するトランザクションは、一般的に成功した場...
※読込みのみと宣言して開始したトランザクションでデータベー...
''重要'' RELEASE は、古いバージョンのInterBase?との互換...
**用例 [#za294a6e]
-isqlでの例です。デフォルトのトランザクションで行ったデー...
COMMIT;
-埋め込み SQL で、名前付きトランザクションの場合の例です。
EXEC SQL
COMMIT TR1;
-埋め込みSQLで、トランザクションコンテキストを保持したま...
EXEC SQL
COMMIT RETAIN;
**参照 [#hc4a88a8]
DISCONNECT , [[ROLLBACK>#rollback]]
より詳細が知りたい場合は、Embedded SQL Guide の transac...
----
&aname(rollback);
*ROLLBACK [#v810a2db]
トランザクションで生じたデータベースへの変更を取り消し...
この文書は、Firebird 1.5 リリースノートを基として内容を...
*構文 [#u897ed7a]
ROLLBACK [TRANSACTION name] [WORK] [RELEASE];
1.5以降のDSQLでは、セーブポイント指定が可能です。
ROLLBACK [WORK] TO [SAVEPOINT] <identifier>;
※ DSQLで使用する場合、終端文字のセミコロンは不要です。 i...
|引数|説明|h
|WORK|オプション指定できますが、これは他のRDBとの互換性の...
|TRANSACTION name|ロールバックするトランザクションの名前...
|RELEASE|旧バージョンInterBase?との互換性のために用意され...
|TO [SAVEPOINT] <idenrifier>|ロールバックするセ...
**詳細の説明 [#y689876d]
ROLLBACK により、現在のトランザクションでのデータベース...
TRANSACTION でトランザクション名を指定することにより、...
''重要'' RELEASE は、古いバージョンのInterBase?との互換...
Firebird 1.5 以降では、DSQLにおいてロールバックするセー...
**用例 [#l302cf0c]
-isqlでの例です。デフォルトのトランザクションをロールバッ...
ROLLBACK;
-埋め込みSQLプログラムで、名前付きトランザクションをロー...
EXEC SQL
ROLLBACK TRANSACTION MYTRANS;
*参照 [#l16e396c]
[[COMMIT>#commit]] , DISCONNECT , [[SAVEPOINT>#savepoint]]
より詳細が知りたい場合は、Embedded SQL Guide の transac...
----
&aname(savepoint);
*SAVEPOINT [#m441093f]
トランザクションをロールバックするときに、任意の位置へ...
この文書は、Firebird 1.5 リリースノートを基としています。
**構文 [#p1699b44]
SAVEPOINT <identifier>;
|引数|説明|h
|identifier|セーブポイントを識別するための識別名です。対...
**詳細の説明 [#ed7313ab]
SAVEPOINT により、任意の時点へのロールバックを行うため...
トランザクションをあるセーブポイント時点へロールバック...
-トランザクションでセーブポイント以降に行われた変更はロー...
-そのセーブポイント以降に作成されたセーブポイントを消去し...
-セーブポイント以降に行われた、暗黙的・明示的な行ロックを...
同一トランザクションで同じレコードの更新を何度も行った...
識別子を指定して RELEASE SAVEPOINT 文を実行すると、その...
このとき、ONLY識別子の指定を省略すると、それ以降のセー...
RELEASE SAVEPOINT の構文に関しては、RELEASE SAVEPOINT ...
-内部セーブポイント
--デフォルトでは、データベースエンジンは自動的にトランザ...
--トランザクションレベルのセーブポイント下において、デー...
--ユーザーがトランザクション下におけるレコードの大量変更...
-PSQLに関して
--PSQLにはユーザーレベルのSAVEPOINTを実装していません。PS...
--SQL/PSQLは、自動的に内部セーブポイントを使用して実行さ...
**用例 [#h3aa3ccc]
テーブルを新規作成して列を挿入し、セーブポイントの動作...
create table test (id integer);
commit;
insert into test values (1);
commit;
insert into test values (2);
savepoint y;
delete from test;
select * from test; -- returns no rows
rollback to y;
select * from test; -- returns two rows
rollback;
select * from test; -- returns one row
**参照 [#l3b10455]
[[ROLLBACK>#rollback]] , [[RELEASE SAVEPOINT>#release_s...
----
&aname(release_savepoint);
*RELEASE SAVEPOINT [#z9c2d8bf]
セーブポイントを削除します。 DSQL,isqlで使用できます。
この文書は、Firebird 1.5 リリースノートの情報を基として...
**構文 [#y47c3fb6]
RELEASE SAVEPOINT <identifier> [ONLY];
|引数|説明|h
|identifier|既存のセーブポイントを識別するための識別名で...
|ONLY|指定したセーブポイントのみを削除します。省略すると...
**詳細の説明 [#b7445448]
RELEASE SAVEPOINT により、指定した既存のセーブポイント...
同一トランザクションで同じレコードの更新を何度も行った...
識別子を指定して RELEASE SAVEPOINT 文を実行すると、その...
このとき、ONLY識別子の指定を省略すると、それ以降のセー...
**参照 [#re4bcd17]
[[SAVEPOINT>#savepoint]]
ページ名:
新規
名前変更
ホーム
一覧
検索
最終更新
バックアップ
ヘルプ
最終更新のRSS