| 您的当前位置:首页 --> MYSQL教程 --> 关于MySQL中savepoint语句使用时所出现的错误 |
| MYSQL教程 关于MySQL中savepoint语句使用时所出现的错误 |
| 浏览次数:764 关键词 ( ) |
| 查看使用该CPU的产品 查看CPU天梯 |
| CPU型号:关于MySQL中savepoint语句使用时所出现的错误 |
| 主频:Ghz |
| 睿频:Ghz |
| 核心数:个 |
| 不支持超核心 |
| 制作工艺: |
| 插槽类型: |
| 功耗:0W |
| L3缓存:0MB |
| 支持最大内存: 0GB |
| CPU详细参数 |
|
前几天帮同事解决一个案例,在主从复制环境下,从库上的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' 第一感觉是遇到保留关键字了,不过看到这么长的字符串,不应该是保留关键字才对。 其实除了升级版本外,解决方法也很简单,把savepoint后面的 identifier 字符串用反引号(波浪号的下档键,英文叫做 backticks 键)引用起来就行。 savepoint `6e86db84_14847168f19__8000`; 这样就可以了。 这个案例也提示我们,在写SQL时,涉及到数据库、表、字段、identifier 等名称时,最好是都能用反引号引用,确保可用。 关于savepoint的2个bug: |
| 下一个产品 SQL计算timestamp的差值的方法 上一个产品 MySQL中slave监控的延迟情况分析 |