MySQL事務屬于數據庫管理系統的重要特性之一。一般而言,事務是指一組需要作為一個整體執行的SQL操作。這些操作要么全部執行成功,要么全部不執行。如果其中的某個操作執行失敗,就會回到最初狀態。因此,MySQL中的事務通常要滿足四個特性,分別是ACID,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability)。
--設置autocommit為關閉 SET autocommit=0; --事務開始 START TRANSACTION; --一些SQL語句 INSERT INTO users (name, age) VALUES ('Alice', 22); UPDATE orders SET paid=1 WHERE order_id=1234; --檢查數據是否正確 SELECT * FROM users WHERE name='Alice'; SELECT * FROM orders WHERE order_id=1234; --如果數據正確,則提交事務 COMMIT; --否則回滾事務 ROLLBACK;
MySQL的事務模式有多種,比如讀未提交、讀已提交、可重復讀和串行化等。其中,讀未提交的模式下,一個事務即便沒有提交,其他事務仍然可以讀取它修改過的數據。在讀已提交的模式下,只有已經提交的事務才可以讀取修改過的數據。可重復讀的模式則是保證在一個事務內,多次讀取同樣的數據時,會得到同樣的結果。而串行化的模式則是保證在一個事務執行時,其它事務不能讀取或修改相同的數據,以保證數據的一致性。
上一篇背景滾動CSS