共計 752 個字符,預計需要花費 2 分鐘才能閱讀完成。
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 中設置自動提交失效如何解決的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!