首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 入門

MySQL 交易(Transaction)完整教學:ACID 特性、控制台與 PHP 實作

     編輯:MySQL 入門

交易基本概念

交易將多個 SQL 操作視為單一工作單元,要麼全成功(COMMIT),要麼全失敗回滾(ROLLBACK),確保資料一致性。

支援條件

  • 僅 InnoDB 引擎支援交易。
  • 適用於 INSERT、UPDATE、DELETE 等資料操作語句。

ACID 四大特性

  1. 原子性:全部執行或全部不執行。
  2. 一致性:交易前後資料庫保持一致狀態(如外鍵約束)。
  3. 隔離性:並發交易互不干擾,完全隔離需犧牲效能。
  4. 持久性:交易提交後永久生效,崩潰可透過重做日誌恢復。

控制台操作流程

START TRANSACTION;
SAVEPOINT savepoint_name;
-- 執行 SQL 操作
-- 正常:COMMIT;  異常:ROLLBACK TO savepoint_name;

PHP 實作範例

<?php
$handler = mysql_connect("localhost","root","password");
mysql_select_db("task");
mysql_query("SET AUTOCOMMIT=0");  -- 關閉自動提交
mysql_query("BEGIN");             -- 開始交易

if (!mysql_query("INSERT INTO trans (id) VALUES('2')")) {
    mysql_query("ROLLBACK");
}
if (!mysql_query("INSERT INTO trans (id) VALUES('4')")) {
    mysql_query("ROLLBACK");
}
mysql_query("COMMIT");
mysql_close($handler);
?>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved