我使用mysql主从复制来备份数据库,但是几天后从服务器得到了以下错误:
Last_SQL_Errno: 1292
Last_SQL_Error: Error 'Truncated incorrect DOUBLE value: '29''' on query. Default database: 'my_database'. Query: 'UPDATE `a_table` SET `name`='xxx',`phone`='xxx',`mch_key`='xxx',`switch`='1',`update_time`=1592612052 WHERE `id` = '29\'''
用两个单引号符号尾随,似乎“列id值29”是不正确的。 但我不知道这是怎么发生的。 如何调试此问题?
mysql版本:主从相同版本5.7.30。
在MySQL中,“截断的不正确的双倍值”是一个误导性错误消息。 我遇到了这个问题,这篇文章帮助我解决了我的问题。
在我的例子中,尽管where子句中的值看起来像一个数字,但它是一个字符串,在where子句中的值中引入引号解决了这个问题,因为它实际上是“varchar”。
我希望以上链接的SO帖子上的内容(不同用户的回答和评论)将有助于找到你的问题的原因! 祝你好运!