使用 Navicat 還原 .psc 備份檔時,若出現「物件數正常但記錄數為 0」的情況,通常是因為預設啟用了「使用交易」選項導致部分資料回滾。本文提供實測有效的解決方案。
mydb1(字元集 utf8)。.psc 檔案執行還原。


mydb1 重新備份,獲得新的 .psc 檔(如 160330103626.psc)。對比發現原備份檔缺少 8 個物件(可能為空表、觸發器或索引),但記錄數完整(47,366 筆),推測缺失物件為空表。mydb2,使用新產出的 .psc 檔還原,進階選項保持預設(勾選使用交易),結果物件與記錄數完全匹配,確認新備份檔無誤。

Navicat 預設在單一交易中執行整個還原過程。若備份檔內含有觸發條件約束、外鍵依賴或特定 SQL 模式不相容的語句,交易會整體回滾,導致資料寫入失敗而結構物件仍被建立。關閉「使用交易」並允許「遇到錯誤繼續」可逐條提交,繞過問題語句,最大程度保留資料。
mysqldump --single-transaction 產出標準 SQL 腳本,降低工具鎖定風險。