第二に、取引の基本的なコマンド
説明:コマンド、
|(垂直バー)別のカッコまたは中カッコ構文アイテム。それらを1つだけ使用してください。
[](角カッコ)オプションの構文アイテム。カッコは入力しないでください。
{}(中括弧)必要な構文アイテムを。かっこを入力しないでください。
1. SQLサーバー
1)BEGIN TRAN {| TRANSACTION} [{ TRANSACTION_NAME | @ tran_name_variable } [WITH MARK [ ' 記述 ']]] [。]
明示的に名前またはローカルトランザクション@tran_name_variable値TRANSACTION_NAMEを開く代表。
2)分散BEGIN TRAN {| TRANSACTION} [ TRANSACTION_NAME | @ tran_name_variable []; ]
明示的に表される値のTRANSACTION_NAMEの名前を開いたり、分散トランザクションの@tran_name_variable
3)COMMIT [{TRAN | TRANSACTION} [ TRANSACTION_NAME | @ tran_name_variable ] [WITH(DELAYED_DURABILITY = {OFF | ON})] [; ]
表し、トランザクションをコミットし、トランザクションの開始は、データベースの永続的な一部となることから、すべてのデータの変更をトランザクションリソースを解放します。括弧の内容ではとても同じ機能を提出トランザクションをコミットして、トランザクションをCOMMIT、省略することができます。
4)[WORK]をCOMMIT。]
提出し、トランザクションを終了します。同じ機能、トランザクションのコミットトランザクションをコミットするが、指定されたトランザクション名を受け入れるように。 この構文はSQL-92と互換性があります。
5)ROLLBACK TRAN {| TRANSACTION} [ TRANSACTION_NAME | @ tran_name_variable | セーブポイント | @ savepoint_variable []; ]
彼は、それが資源関連するデータポイントとリリースのすべてを保存するために、トランザクションの開始時点から削除するように指定開始点やポイントを保存するには、トランザクションをロールバックすると述べました。括弧は、ロールバックトランザクションROLLBACK TRANSACTION ROLLBACK関数と同じ、コンテンツに省略されてもよいです。
6)ROLLBACK [WORK] [。]
トランザクションは、トランザクションの開始にロールバックされます。同じ機能を持つROLLBACK TRANSACTIONを、しかし、ROLLBACK TRANSACTIONがトランザクション名を指定します。このROLLBACKは、ISO規格と互換性があります。
ネスティングの取引は、ROLLBACK WORKは常にバック最も遠いBEGIN TRANSACTION文、@@ TRANCOUNTシステム関数へのロールと0に減少した場合
7)SAVE {TRAN | TRANSACTION} { セーブポイント | @ savepoint_variable }。]
トランザクション内に設定されたトランザクションのセーブポイント。セーブポイントは、セーブポイントに割り当てられた名前です。@ Savepoint_variableあるポイントの名前を含むユーザ定義の変数を保存するための有効な名前。
8)SETトランザクション分離レベル{READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SNAPSHOT | SERIALIZABLE}
トランザクション分離レベルを設定します。
BEGIN TRANSACTION TR_ACCOUNTTRANSFERし; - A千元は減算アカウント UPDATEを [ DBO ]。[ アカウント] SETの AMOUNT = AMOUNT - 1000.00 [ NAME ] = ' A ' ; - B口座番号プラス千元UPDATE [ DBO ]。[ アカウント] のSET AMOUNT = AMOUNT + 1000.00 [ NAME ] = ' B " ; COMMIT TRANSACTION TR_ACCOUNTTRANSFERを。
2. MYSQL
MySQLは、データベースエンジンはInnoDBデータベースやテーブルのみサポートトランザクションを使用しています。
1)START TRANSACTION | [WORK]をBEGIN
START TRANSACTIONまたはBEGIN [WORK]は、トランザクションを開くために使用されています。
2)[WORK] [AND [NO] CHAIN] [[NO] RELEASE]をCOMMIT
変更後のトランザクションが永続的な変更になったことから、現在のトランザクションをコミットします。
3)ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
ロールバックトランザクションの開始点までのトランザクションは、トランザクション中にすべての変更を取り消します。
4)SAVEPOINT 識別子
トランザクション内のセーブポイント指定された識別子を作成します。
5)ROLLBACK [WORK] TO SAVEPOINT 識別子
トランザクションは、トランザクションに指定されたセーブポイントにロールバックされます。
6)RELEASE SAVEPOINT 識別子
ポイントの保存指定されたトランザクションを削除します。
7)SET [GLOBAL | SESSION]トランザクション分離レベル
{READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}
トランザクション分離レベルを設定します。
BEGIN - A千元は減算アカウント UPDATEのアカウントを SETの AMOUNT = AMOUNT - 1000.00 WHERE NAME = ' A ' ; - B口座番号プラス千元 のUPDATE ACCOUNT SETの AMOUNT = AMOUNT + 1000.00 WHERE NAME = ' B ' ; COMMIT ;
3. ORACLE
最初のSQL文を実行するために開始するOracleトランザクションは、トランザクションの開始と終了を指定せずに、トランザクションは、次のトランザクションの終わりが始まる意味します。トランザクションは、次の4つの場合に終了します。
- SAVEPOINT句なしでCOMMITまたはROLLBACKコマンド。
- ユーザーがDDLコマンドを実行すると、暗黙的にコミットします。CREATE、DROP、RENAME、またはALTER:DDLは、次のようなコマンド。
- データベース接続が切断されたとき。
- クライアントプロセスが異常終了し、トランザクションで結果は、暗黙的にロールバックです。
1)COMMIT
トランザクション内のすべての変更は、トランザクションの終了を提出してください。
2)ROLLBACK
ロールバックすべてのトランザクションを変更し、トランザクションが終了します。
3)SAVEPOINT 識別子
セーブポイントを作成するので、あなたが取引を変更することができますセーブポイントにロールバックされます。
4)ROLLBACK TO SAVEPOINT 識別子
指定されたセーブポイントのロールバックの業務に変更します。
5)RELEASE SAVEPOINT 識別子
セーブポイント指定削除します。
6)のSET TRANSACTION [READ ONLY | 読み書き ]
[分離レベル[SERIALIZE | READ COMMITED]
[USE ROLLBACK SEGMENT 'SEGMENT_NAME']
[NAME 'TRANSACTION_NAME']。
トランザクション属性を設定します。
- A千元は減算アカウント UPDATEのアカウントを SETの AMOUNT = AMOUNT - 1000.00 WHERE NAME = ' A ' ; - B口座番号プラス千元 のUPDATE ACCOUNT SETの AMOUNT = AMOUNT + 1000.00 NAME = ' B ' ; COMMIT。