主從複制環境,從庫 MySQL 5.5.5,SQL 執行緒報錯:
Last_Error: Error 'You have an error in your SQL syntax;
check the manual ... near '6e86db84_14847168f19__8000' at line 1'
Query: 'SAVEPOINT 6e86db84_14847168f19__8000'
6e86db84_14847168f19__8000 含字母 e6e86 = 6×10^86)**用反引號(backtick)包裹識別碼**:
SAVEPOINT `6e86db84_14847168f19__8000`;
-- 表名、欄位名、資料庫名、別名、SAVEPOINT 識別碼
SELECT `id`, `name` FROM `db`.`table` WHERE `status` = 1;
SAVEPOINT `sp_1`;
RELEASE SAVEPOINT `sp_1`;
💡 曾見線上表有欄位名 check(保留字),因開發加了反引號才未踩坑。
💡 一句話心法:寫 SQL 時,**所有使用者定義識別碼統一加反引號**,預防保留字衝突、解析器 Bug、大小寫敏感等全類別問題。