MySQL不支持事務處理的解決方法

 

MySQL數據庫默認的存儲引擎類型是MyISAM,這種存儲引擎類型不支持事務處理。php

在MySQL中,只有InnoDB存儲引擎類型的數據表才能支持事務處理。數據庫

所以,若是想讓MySQL支持事務處理,只要將數據表修改成InnoDB存儲引擎類型便可。操做步驟以下:日誌

1. 進入到phpMyAdmin主界面,在導航面板中選擇要轉換爲InnoDB存儲引擎類型的數據庫,例如選擇db_xuesheng數據庫。以下圖所示:事務

在phpMyAdmin中選擇數據庫

2. 在主界面頂端點擊「SQL」超連接,打開「在數據庫db_xuesheng運行SQL查詢」窗口。以下圖所示:io

「在數據庫db_xuesheng運行SQL查詢」窗口

3. 在窗口中輸入im

show engines;

SQL命令。數據

4. 在窗口的右下角點擊「執行」按鈕,打開「顯示查詢框」頁面。以下圖所示:查詢

「顯示查詢框」頁面

5. 在「顯示查詢框」頁面中,咱們發現,InnoDB類型的Transactions項爲YES,這說明InnoDB類型的數據庫或數據表支持事務處理。db

下面,咱們只要將相關的數據表修改成InnoDB存儲引擎類型,就能支持事務處理操做了。英文

6. 在phpMyAdmin的導航面板中選擇要修改存儲引擎類型的數據庫db_xuesheng,而後在主界面頂端點擊「SQL」超連接,打開「在數據庫db_xuesheng運行SQL查詢」窗口。以下圖所示:

「在數據庫db_xuesheng運行SQL查詢」窗口

7. 在查詢窗口中輸入

ALTER TABLE tb_chengji ENGINE = InnoDB;

SQL命令。

若是輸入

ALTER TABLE `tb_chengji` ENGINE = InnoDB;

SQL命令也行。

`tb_chengji`兩邊的符號是在英文輸入的狀況下,按下該鍵打出來的:

特殊符號的輸入

8. 點擊右下角的「執行」按鈕,仍然打開「SQL」超連接窗口。以下圖所示:

打開「SQL」超連接窗口

9. 至此,成功將數據表由MyISAM存儲引擎類型轉換爲InnoDB存儲引擎類型。

咱們也能夠在數據表中執行事務處理操做了!

 

//我的理解

1:因爲MyISAM存儲引擎類型不支持事務,因此該類型通常都是系統表或者是日誌表,

2:若是表須要頻繁的寫操做,修改成InnoDB存儲引擎類型較好;

相關文章
相關標籤/搜索