mysql 复制错误:截断了不正确的双精度值



我使用 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。

"截断不正确的DOUBLE值"是MySQL中的误导性错误消息。我遇到了这个问题,这个SO帖子帮助我解决了我的问题。

就我而言,尽管 where 子句中的值看起来像一个数字,它是一个字符串,并且在 where 子句中的值中引入引号解决了这个问题,因为它实际上是"varchar"。

我希望上面链接的SO帖子上的内容(不同用户的回答和评论(将有助于找到问题的原因!祝你好运!

最新更新