文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
手冊頁 (TGZ) - 258.2Kb
手冊頁 (Zip) - 365.3Kb
資訊 (Gzip) - 4.0Mb
資訊 (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  複製與保留字

19.5.1.27 複製與保留字

當您嘗試從較舊的來源複製到較新的副本,並且使用來源上在較新 MySQL 版本(在副本上執行)中是保留字的識別碼時,您可能會遇到問題。例如,在 MySQL 5.7 來源上的名為 rank 的資料表欄,複製到 MySQL 9.0 副本時可能會造成問題,因為 RANK 在 MySQL 8.0 中變成保留字。

在某些情況下,複製可能會失敗,並出現錯誤 1064 您的 SQL 語法中有錯誤...即使使用保留字命名的資料庫或資料表,或者具有使用保留字命名的欄位的資料表被排除在複製之外。這是因為每個 SQL 事件都必須在執行之前由副本解析,以便副本知道會影響哪個或哪些資料庫物件。只有在解析事件之後,副本才能應用由 --replicate-do-db--replicate-do-table--replicate-ignore-db--replicate-ignore-table 定義的任何篩選規則。

為了解決來源上資料庫、資料表或欄位名稱在副本上會被視為保留字的問題,請執行以下其中一項操作:

  • 在來源上使用一個或多個 ALTER TABLE 陳述式,以變更任何資料庫物件的名稱,這些名稱在副本上會被視為保留字,並變更任何使用舊名稱的 SQL 陳述式,改為使用新名稱。

  • 在任何使用這些資料庫物件名稱的 SQL 陳述式中,使用反引號字元 (`) 將名稱寫為帶引號的識別符。

有關 MySQL 版本保留字的清單,請參閱 MySQL 8.0 中的關鍵字和保留字,在MySQL 伺服器版本參考中。有關識別符引用規則,請參閱第 11.2 節「結構描述物件名稱」