數(shù)據(jù)庫commit之后還能回滾嗎 mysql有自帶回滾功能嗎?
mysql有自帶回滾功能嗎?你是說事務(wù)回滾嗎?MySQL的InnoDB和NDB引擎默認支持事務(wù)和自動提交事務(wù)。要使用事務(wù)回滾,需要先關(guān)閉自動提交,設(shè)置autocommit=off。這是會話級別設(shè)置。每
mysql有自帶回滾功能嗎?
你是說事務(wù)回滾嗎?MySQL的InnoDB和NDB引擎默認支持事務(wù)和自動提交事務(wù)。
要使用事務(wù)回滾,需要先關(guān)閉自動提交,設(shè)置autocommit=off。這是會話級別設(shè)置。每次重新連接時都需要重置它
之后,可以正常使用事務(wù)回滾
事務(wù)是一系列查詢和/或更新語句。使用begin和Start transaction啟動事務(wù),回滾事務(wù)并提交事務(wù)。啟動事務(wù)后,可以有多個SQL查詢或update語句。每個SQL提交執(zhí)行后,都應(yīng)該有語句來判斷是否正確執(zhí)行,以確定是否回滾下一步。如果所有這些都正確執(zhí)行,事務(wù)將最終提交。事務(wù)回滾后,數(shù)據(jù)庫將保持其事務(wù)前狀態(tài)。就像一個編輯過的文件不保存就退出一樣。當然,它仍然與原始文件相同。因此,事務(wù)可以被視為一個原子操作,在這個操作中,所有或沒有SQL語句被執(zhí)行。您可以通過編輯文件來理解人們的答案
查看MySQL客戶端的事務(wù)提交模式命令:select@@autocommit
將MySQL客戶端的事務(wù)提交模式修改為手動提交命令:set@@autocommit=0
(注:0表示手動提交,即,使用MySQL客戶端執(zhí)行SQL命令后,必須使用commit命令執(zhí)行事務(wù),否則SQL命令無效,事務(wù)將被執(zhí)行。如果要取消事務(wù),請使用rollback命令。1表示自動提交,即不需要在MySQL客戶端手動執(zhí)行commit命令。)
在MySQL的自動提交模式下,每條SQL語句都是一個獨立的事務(wù)。
注意:
1。手動設(shè)置@@autocommit=0,即設(shè)置為非自動提交模式,該模式僅對當前MySQL命令行窗口有效。打開新窗口后,默認值仍然是auto commit;
2。對于非自動提交模式,例如在命令行中添加記錄,并在退出命令行后重新打開命令行,以前插入的記錄不可用。(只需使用select*from表名進行驗證。)