我使用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\'''
看起来"column id value 29“是不正确的,因为后面有两个单引号。但我不知道这是怎么发生的。如何调试此问题?
mysql版本:主备版本为5.7.30。
发布于 2020-06-20 13:57:15
‘截断的不正确的双精度值’在MySQL中是一条误导性的错误消息。我遇到过这个问题,这篇SO文章帮助我解决了这个问题。
在我的例子中,尽管where子句中的值看起来像一个数字,但它是一个字符串,并且在where子句的值中引入引号解决了这个问题,因为它实际上是"varchar“。
我希望上面链接的帖子上的内容(不同用户的答案和评论)能帮助你找到问题的原因!祝好运!
https://stackoverflow.com/questions/62482092
复制相似问题