SQLiteのトランザクション
トランザクション(トランザクション)は、データベース上の作業単位です。 トランザクション(トランザクション)は、ユーザによって手動で行うことができる作業または完全な配列の論理的なシーケンスであり、それは、データベースプログラムのいくつかの種類によって自動的に行うことができます。
取引(トランザクション)は、データベースを拡張するために、1つまたはそれ以上の変化を指します。 あなたがレコードまたはレコードの更新を作成したり、テーブルからレコードを削除している場合たとえば、あなたはテーブルの上にトランザクションを実行しています。 データの整合性を確保し、データベース・エラーを処理するためのトランザクションを制御することが重要です。
実際には、それらのすべてが実行のためのトランザクションの一部としてまとめ、グループとしてSQLiteのクエリフェデレーションの多くを置くことができます。
不動産取引
トランザクション(トランザクション)標準は、通常、ACIDの頭字語に基づいて、次の4つのプロパティがあります。
アトミック(原子性):オペレーション内のすべての作業単位がそうでなければ、正常に完了した場合の動作は以前の状態にロールバックされる前に、トランザクションは、障害発生時に終了されることを保証します。
整合性(一貫性):正常に送信されたトランザクションに正しく、そのデータベースの変更ステータスを確認してください。
絶縁(アイソレーション):トランザクションは独立して、かつ透過的に動作します。
(耐久性)永続:トランザクションがまだ存在しているシステム障害が発生した場合の結果や効果を提出されていることを確認します。
トランザクション制御
トランザクションを制御するには、次のコマンドを使用します。
BEGIN TRANSACTIONを:トランザクションを開始します。
COMMIT:変更を保存するか、END TRANSACTIONコマンドを使用することができます。
ROLLBACK:変更をロールバック。
唯一のDMLとのトランザクション制御コマンドは、INSERT、UPDATEを命令し、一緒に削除します。 データベース内のこれらの操作を自動的にコミットされるため、場合、それらは、テーブルを使用して表を作成または削除することはできません。
TRANSACTIONコマンドをBEGIN
トランザクション(トランザクション)を使用すると、BEGIN TRANSACTIONをコマンドを使用するか、単純な起動するコマンドを開始することができます。 このような取引は通常最後の実行は、次のCOMMITまたはROLLBACKコマンドまで、継続します。 データベースが閉じているか、エラーが発生したときただし、トランザクションはロールバックされます。 以下は、トランザクション単純な構文の始まりです。
BEGIN; または BEGIN TRANSACTIONを。
COMMITコマンドを
COMMITコマンドは、データベースのトランザクションコール・トランザクション・コマンドへの変更を保存するために使用されます。
データベースへの最後のCOMMITまたはROLLBACKコマンド以降のすべてのトランザクションを保存するためのコマンドをCOMMIT。
次のようにCOMMITコマンドの構文は次のとおりです。
COMMIT; または END TRANSACTION;
ROLLBACKコマンド
ROLLBACKコマンドは、トランザクションのデータベースに保存されていないトランザクションを元に戻すためのコマンドです。
ROLLBACKコマンドは、以降に発行された最後のCOMMITまたはROLLBACKコマンド以降のトランザクションを元に戻すために使用することができます。
構文ROLLBACKコマンドは次のとおりです。
ROLLBACK;
例
仮定COMPANYテーブルには、次のレコードを持っています。
IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 1ポール32カリフォルニア20000.0 2アレン25テキサス15000.0 3テディ23ノルウェー20000.0 4マーク25リッチモンド65000.0 5デイビッド27テキサス85000.0 6金22サウスホール45000.0 7ジェームス・24ヒューストン10000.0
それでは、トランザクションを開始し、= 25テーブル時代からレコードを削除し、そして最後に、我々はすべての変更を元に戻すROLLBACKコマンドを使用してみましょう。
sqliteの> BEGIN; sqliteの>会社からDELETE WHERE AGE = 25; sqliteの> ROLLBACK;
COMPANYテーブルをチェックし、まだ次のレコードを持っています:
IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 1ポール32カリフォルニア20000.0 2アレン25テキサス15000.0 3テディ23ノルウェー20000.0 4マーク25リッチモンド65000.0 5デイビッド27テキサス85000.0 6金22サウスホール45000.0 7ジェームス・24ヒューストン10000.0
それでは、別のトランザクションを開始= 25テーブル時代からレコードを削除し、最終的に我々はすべての変更をコミットするには、commitコマンドを使用してみましょう。
sqliteの> BEGIN; sqliteの>会社からDELETE WHERE AGE = 25; sqliteの> COMMIT;
COMPANYテーブルを確認し、次のレコード:
IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 1ポール32カリフォルニア20000.0 3テディ23ノルウェー20000.0 5デイビッド27テキサス85000.0 6金22サウスホール45000.0 7ジェームス・24ヒューストン10000.0