日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql savepoint语法_SAVEPOINT语法错误一例

發布時間:2023/12/10 数据库 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql savepoint语法_SAVEPOINT语法错误一例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前幾天幫同事解決一個案例,在主從復制環境下,從庫上的MySQL版本號是5.5.5,遇到下面的錯誤:

~~~

#其他非相關信息我都隱藏掉了

[(yejr@imysql.com)]> show slave status \G;

Slave_IO_Running: Yes

Slave_SQL_Running: No

Last_Errno: 1064

Last_Error: Error 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '6e86db84_14847168f19__8000' at line 1' on query. Default database: 'act'. Query: 'SAVEPOINT 6e86db84_14847168f19__8000'

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 1064

Last_SQL_Error: Error 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '6e86db84_14847168f19__8000' at line 1' on query. Default database: 'act_log'. Query: 'SAVEPOINT 6e86db84_14847168f19__8000'

~~~

第一感覺是遇到保留關鍵字了,不過看到這么長的字符串,不應該是保留關鍵字才對。

經過嘗試,最后發現是字符串中的 “e” 這個字符如果存在就可能會報錯,看起來應該是bug才對了。

在MySQL的bug系統里確實找到了這個bug,不過看bug描述,在5.5版本中應該是已經修復了才對,看來太不靠譜了呀~~

關于這個bug:[Savepoint identifier is occasionally considered as floating point numbers](http://bugs.mysql.com/bug.php?id=55962 "Savepoint identifier is occasionally considered as floating point numbers")

其實除了升級版本外,解決方法也很簡單,把savepoint后面的 identifier 字符串用反引號(波浪號的下檔鍵,英文叫做 backticks 鍵)引用起來就行。

例如:

~~~

savepoint `6e86db84_14847168f19__8000`;

~~~

這樣就可以了。

這個案例也提示我們,在寫SQL時,涉及到數據庫、表、字段、identifier 等名稱時,最好是都能用反引號引用,確保可用。

曾經看到線上數據表有個字段名是?check?,這個名字在MySQL里很早就已經是保留關鍵字,幸好開發同學比較靠譜,都加上了反引號。

關于savepoint的2個bug:

[Savepoint Identifier should be enclosed with backticks](http://bugs.mysql.com/bug.php?id=55961 "Savepoint Identifier should be enclosed with backticks")

[Savepoint identifier is occasionally considered as floating point numbers](http://bugs.mysql.com/bug.php?id=55962 "Savepoint identifier is occasionally considered as floating point numbers")

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的mysql savepoint语法_SAVEPOINT语法错误一例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。