業務
SQLステートメントまたは1つの実行ユニット、実行ユニットの実行からなる群のいずれかのすべて、またはすべて実行されません。
トランザクション特性:
ACID
原子性:トランザクションが実行行うかのいずれかで、細分化することができない
トランザクションデータを別の一貫した状態の1つの一貫した状態からハンドオーバを実行する:一貫性の
単離:他のトランザクションからの干渉なしでトランザクションを実行する
持続性別:トランザクションがコミットされると、データがデータベースに永続的な変更になります。- トランザクションの作成
暗黙的なトランザクション:トランザクション明白な開閉タグ
などの挿入、更新、削除の文と- 明示的なトランザクション:トランザクションが重要な開口部を持っており、最後のマーク
前提を:あなたは自動送信機能を設定する必要があります無効になっている、セットの自動コミット= 0;
#步骤1:开启事务
set autocommit=0;
start transaction;可选的
#步骤2:编写事务中的sql语句(select insert update delete)
语句1;
语句2;
...
#步骤3:结束事务
commit;提交事务
rollback;回滚事务
savepoint 节点名;设置保存点
# savepoint 的使用
SET autocommit=0;
START TRANSACTION;
DELETE FROM account WHERE id=25;
SAVEPOINT a;#设置保存点
DELETE FROM account WHERE id=28;
ROLLBACK TO a;#回滚到保存点
- トランザクション分離レベル:
ダーティー読み取り | 非反復可能読み取り | マジック読書 | |
---|---|---|---|
非コミット読み取り | √ | √ | √ |
読みコミット | × | √ | √ |
反復可能読み取り | × | × | √ |
直列化可能 | × | × | × |
第三デフォルトのMySQLの分離レベル読み取り反復
Oracleのデフォルトは、第二のコミット分離レベルを読みます
- 分離レベルを表示するには
@@ tx_isolationを選択します。 - 分離レベルの設定
、設定されたセッションを|グローバル・トランザクションの分離レベル分離レベル。