MySQLトランザクションの実現方法
MySQLトランザクションは以下の方法で実現できます。
- BEGIN、COMMIT、ROLLBACK ステートメントを使用してトランザクションを制御:トランザクション開始時には BEGIN ステートメントを使用し、トランザクションの完了時に COMMIT または ROLLBACK ステートメントを使用して、トランザクションをコミットまたはロールバックします。
母は仕事で忙しかった。
BEGIN; -- 开始事务
-- 执行一系列SQL语句
COMMIT; -- 提交事务
-- 或者
ROLLBACK; -- 回滚事务
- SET AUTOCOMMIT=0;
- コミット
- ロールバック
サンプル
SET AUTOCOMMIT=0; -- 关闭自动提交
-- 执行一系列SQL语句
COMMIT; -- 提交事务
-- 或者
ROLLBACK; -- 回滚事务
- ストアドプロシージャを利用する:一連の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文がすべて正常に実行されてコミットされるか、すべてロールバックされることを保証することです。