首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 批次腳本錯誤不中斷:使用 --force 參數讓執行繼續

     編輯:MySQL 綜合教學

MySQL 批次腳本錯誤不中斷:使用 --force 參數讓執行繼續

升級腳本常因不規範/不可重入 SQL 導致中途報錯中斷。MySQL 客戶端內建 --force 參數可忽略錯誤繼續執行後續語句。

使用方式

mysql -u root -p password --force [database_name] < patch.sql

適用場景

  • 歷史遷移腳本包含重複建表/索引/欄位等可預期錯誤
  • 過渡期尚未完全改為冪等存儲過程 (如 add_column_if_not_exists)
  • 一次性執行大量獨立 SQL 語句,部分失敗不影響整體

注意事項

  • --force 僅忽略錯誤繼續,不會回滾已執行語句 (非事務型)
  • 錯誤訊息仍會輸出到 stderr,建議重導向記錄:2> error.log
  • 長期應建立可重入遷移機制 (Flyway/Liquibase/自製冪等存儲過程)
  • 關鍵業務升級嚴禁使用,需嚴格驗證每步結果

進階替代方案

# 使用存儲過程包裝冪等操作
DELIMITER //
CREATE PROCEDURE safe_add_column()
BEGIN
  DECLARE CONTINUE HANDLER FOR 1060 BEGIN END; -- 忽略 "Duplicate column"
  ALTER TABLE t ADD COLUMN c INT;
END//
DELIMITER ;
CALL safe_add_column();
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved