從其他數據庫導出的 SQL 文件在 Navicat 中運行報錯,手動創建也失敗。原始答案僅提供一張截圖(不可見),此處總結通用排查思路。
| 原因類別 | 典型錯誤 | 解決方法 |
|---|---|---|
| 分隔符衝突 | `DELIMITER ;;` 未識別 | Navicat 查詢編輯器默認分隔符為 `;`,需在工具欄設置「分隔符」為 `;;` 或去掉 `DELIMITER` 語句,改用「批量執行」模式。 |
| 版本語法差異 | `IF NOT EXISTS`、`ENGINE` 等 | 對比源/目標 MySQL 版本,手動調整不兼容語法(如移除 `DEFINER` 子句)。 |
| 字符集/校對規則 | `utf8mb4_0900_ai_ci` 不存在 | 改為目標庫支持的校對規則(如 `utf8mb4_general_ci`)。 |
| 權限不足 | `Access denied for user ...` | 確保當前用戶有 `CREATE ROUTINE`、`SUPER` 權限。 |
| 隱藏字符 | 語法錯誤位置不明 | 複製到 VS Code / Notepad++ 顯示所有字符,清除 BOM、全角空格、智能引號。 |