この記事では、MySQL トランザクション管理の概要を (例とともに) 紹介します。必要な方は参考にしていただければ幸いです。
トランザクション処理は、データベースなどの整合性を維持し、mysql 操作が成功または失敗することを保証するために使用されます (myisam はトランザクションをサポートしていません)
1。
##トランザクションは SQL ステートメントのグループを指します。 ロールバックは、指定された SQL ステートメントを元に戻すプロセスを指します。
コミットとは、保存されていない SQL ステートメントの結果をデータベース テーブルに書き込むことを指します。 セーブポイントは、トランザクション処理で設定された一時的なプレースホルダー (プレースホルダー) を指します。 (トランザクション全体をロールバックするのではなく) ロールバックを発行できます。 2. rollback
select * from orderitems;
START TRANSACTION;
DELETE FROM orderitems;
select * from orderitems;
ROLLBACK;
select * from orderitems;
ログイン後にコピー
3 を使用します。commit
START TRANSACTION;
DELETE FROM orderitems where order_num = 20010;
DELETE FROM orders WHERE order_num = 20010;
COMMIT
ログイン後にコピー
を使用します。2 回目の削除が失敗したと仮定して、トランザクション ブロック内のトランザクションをロールバックして取り消します。ステートメント
4. 保持ポイントを使用する
複雑なトランザクション処理では、部分的なコミットまたはロールバックが必要になる場合があります。
トランザクションの一部のロールバックをサポートするには、トランザクション ブロック内の適切な場所にプレースホルダーを配置する必要があります。こうすることで、ロールバックする必要がある場合に、プレースホルダーにフォールバックできます。
これらのプレースホルダーは保持ポイントと呼ばれます。プレースホルダーを作成するには、SAVEPOINT
保持ポイントを作成する
SAVEPOINT delete1
ログイン後にコピー
保持ポイントにフォールバックする
ROLLBACK TO delete1
ログイン後にコピー
ヒントを使用します。
予約ポイントは多ければ多いほど便利で柔軟にご利用いただけますが、わざわざお越しいただく必要はありません。すべては適度に行われます
保持ポイントの解放
トランザクションの完了後 (ROLLBACK または COMMIT の実行)、保持ポイントは自動的に解放されます-
- release savepoint delete1
保持ポイントを明確に解放します
5. デフォルトをコミット動作に変更します
mysql はすべての変更を自動的にコミットします。
変更を自動的にコミットしないでください
set autocommit = 0;
ログイン後にコピー
以上がMySQL トランザクション管理の概要 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。