首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

解決非事務表回滾失敗:檢查表類型與引擎支援

     編輯:MySQL 資料庫相關知識

現象與原因

執行 ROLLBACK 時出現:
Warning: Some non-transactional changed tables couldn't be rolled back
表示事務中包含不支援事務的表。最常見原因:以為是事務表實際上不是——嘗試使用未支援或被禁用的事務引擎建表,MySQL 會預設建立 MyISAM(非事務)。

診斷步驟

  1. 檢查表類型:
    SHOW TABLE STATUS LIKE 'tbl_name'; 或 SHOW CREATE TABLE tbl_name;
  2. 確認伺服器支援的引擎:
    SHOW ENGINES;
  3. 檢查特定引擎變數:
    SHOW VARIABLES LIKE 'have_%';
    例:have_innodb 判斷 InnoDB 可用性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved