您好,登錄后才能下訂單哦!
mysql中設置自動提交失效如何解決,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
問題很簡單 JDBC 連接mysl 獲取connnection 然后conn.setAutoCommit(false);
重點來了 現在是要插入一條記錄
inset1......然后做一些邏輯處理,更新另一條數據 update2.。。
最后conn.commit();當然catche里面還有 conn.rollback()。
DEBUG時候發現 insert1執行完,已經有值了。。原以為是隔離級別的問題,沒在意。然后繼續執行邏輯處理,
出現異常conn.reollback()了。。此時再一看 插入的數據沒有回滾。代碼檢查N次沒查出問題。
無奈又要問度娘,谷爺。。。此段時間乃是煎熬啊~~~~ www.2cto.com
最后還是有成果的。找到了個表存儲引擎的文章。
show create table 表名;
可以看到ENGINE=MyISAM
MyISAM是指Mysql的默認存儲引擎,當create創建新表時,未指定新表的存儲引擎時,默認使用Myisam。
MyISAM管理非事務表。它提供高速存儲和檢索,以及全文搜索能力
既然有非事務表,就應該有支持事務的表了。沒錯,度娘又告訴我了 InnoDB
InnoDB存儲引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是對比Myisam的存儲引擎,InnoDB寫的處理效率差一些并且會占用更多的磁盤空間以保留數據和索引。
那就改吧。。
alter table 表名 engine=InnoDB;
看完上述內容,你們掌握mysql中設置自動提交失效如何解決的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。