MySQLトランザクションの実現方法

MySQLトランザクションは以下の方法で実現できます。

  1. BEGIN、COMMIT、ROLLBACK ステートメントを使用してトランザクションを制御:トランザクション開始時には BEGIN ステートメントを使用し、トランザクションの完了時に COMMIT または ROLLBACK ステートメントを使用して、トランザクションをコミットまたはロールバックします。

母は仕事で忙しかった。

BEGIN; -- 开始事务
-- 执行一系列SQL语句
COMMIT; -- 提交事务
-- 或者
ROLLBACK; -- 回滚事务
  1. SET AUTOCOMMIT=0;
  2. コミット
  3. ロールバック

サンプル

SET AUTOCOMMIT=0; -- 关闭自动提交
-- 执行一系列SQL语句
COMMIT; -- 提交事务
-- 或者
ROLLBACK; -- 回滚事务
  1. ストアドプロシージャを利用する:一連のSQL文をストアドプロシージャ内にカプセル化し、その中でBEGIN、COMMIT、ROLLBACK文を用いてトランザクションのコミットやロールバックを制御できる。

例えば:

DELIMITER //
CREATE PROCEDURE my_transaction()
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;
START TRANSACTION;
-- 执行一系列SQL语句
COMMIT;
END //
DELIMITER ;
CALL my_transaction(); -- 调用存储过程执行事务

いずれの方法を使うにせよ、トランザクションの目的は、一連のSQL文がすべて正常に実行されてコミットされるか、すべてロールバックされることを保証することです。

bannerAds