1. 程式人生 > >MySQL資料庫之事務

MySQL資料庫之事務

事務:一組連續不可分割的SQL,要求要麼全部成功要麼全部撤銷。 注意:MySQL的表型別必須是InnoDB,才能支援事務。

為什麼需要事務???

事務是資料庫商用最基本最重要的特點。 事務是保證資料庫資料完整性和安全性最重要的技術。 事務是要求一組連續的SQL語句要麼全部成功執行,要麼資料返回到開啟事務前的狀態。不允許部分SQL語句成功,部分不成功。

start transaction;
insert 語句
delete 語句
update 語句
select 語句
commit;

其中,start transaction是開啟事務commit是提交,表示一些列sql語句成功執行,提交到資料庫。

start transaction;
insert 語句
delete 語句
update 語句
select 語句
rollback;

其中,start transaction是開啟事務rollback是提交,表示一些列sql語句沒有全部成功執行,撤銷所有的改動。

檢視當前的模式是否為自動提交模式:

show variables like '%autocommit';   //Value=ON為自動提交  OFF為手動提交

開啟自動提交模式:

set autocommit=1;

關閉自動提交模式:

set autocommit=0;

事務注意事項:(事務要求滿足4點(簡稱ACID))

1.原子性(Atomicity):事務中的多個操作,不可分割,要麼都成功,要麼都失敗。 2.一致性(Consistency): 事務操作之後, 資料庫所處的狀態和業務規則是一致的; 比如a,b賬戶相互轉賬之後,總金額不變。 3.隔離性(Isolation):事務必須與其他事務進行的資料更改相隔離。這意味著沒有其他操作可以改變中間態(沒有提交的)的資料。為了避免中間態資料被更改,事務必須要麼等待來自其他事務的更改被提交,要麼只能檢視到處於上一個提交狀態的資料。 4.永續性(Durability):在一個事務完成,這些更改的資料將永久存在。

持久化: 把記憶體裡面的資料,同步到可掉電裝置中