事務是必須滿足4個條件(ACID): Atomicity(原子性)、Consistency(穩定性)、Isolation(隔離性)、Durability(可靠性) 1、事務的原子性:一組事務,要么成功;要么撤回。 2、穩定性 : 有非法數據(外鍵約束之類),事務撤回。 3、隔離性:事務獨立運行。一個事務處理后的結果,影響了其他事務,那么其他事務會撤回。事務的100%隔離,需要犧牲速度。 4、可靠性:軟、硬件崩潰后,InnoDB數據表驅動會利用日志文件重構修改??煽啃院透咚俣炔豢杉娴?, innodb_flush_log_at_trx_commit選項 決定什么時候吧事務保存到日志里。
MySQL的事務處理主要有兩種方法 1.用begin,rollback,commit來實現 begin/start transaction開始一個事務 rollback事務回滾 commit 事務確認 2.直接用set來改變mysql的自動提交模式 mysql默認是自動提交的,也就是你提交一個query,就直接執行!可以通過 set autocommit = 0 禁止自動提交 set autocommit = 1 開啟自動提交 來實現事務的處理。 但要注意當用set autocommit = 0 的時候,你以后所有的sql都將作為事務處理,直到你用commit確認或 rollback結束,注意當你結束這個事務的同時也開啟了新的事務!按第一種方法只將當前的做為一個事務! MYSQL只有 INNODB和BDB類型的數據表才支持事務處理,其他的類型是不支持的!
如果commit之后,rollback是沒有用的, rollback主要是取消你在begin之后所做的所有操作,如果先rollback,然后commit,相當于沒有操作
新聞熱點
疑難解答