首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql 'replace into‘仅在replication slave上失败

mysql 'replace into‘仅在replication slave上失败
EN

Stack Overflow用户
提问于 2013-07-14 01:33:31
回答 1查看 808关注 0票数 0

这个表的目的是按分钟收集多个统计数据(由name列指定),然后我编写了一些sql,将分钟的sum( )汇总为按名称的小时,将小时的sum( )汇总为天,依此类推。

下面是表结构:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `stats` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `time` varchar(19) NOT NULL,
  `name` varchar(16) NOT NULL,
  `value` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `time_name` (`time`,`name`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=32060002 ;

以下是"show slave status“给出的错误之一:

代码语言:javascript
复制
Last_SQL_Error: Error 'Duplicate entry '32189722' for key 'PRIMARY'' on query. Default database: 'quip_mailer'. Query: 'replace into stats select NULL, date_format( execute_time, '%Y-%m-%d %H:%i' ), 'sent', count(*) as v from queue as q where execute_time > '2013-07-13 16:17:00' group by date_format( execute_time, '%Y-%m-%d %H:%i' ) order by date_format( execute_time, '%Y-%m-%d %H:%i' )'

错误是主键,尽管如您所见,传入的主键为NULL。

那么,为什么“替换”不会真正发挥作用并替换数据呢?对我来说没什么意义。

如果我复制/粘贴在从服务器上运行确切sql命令,则工作正常。只有当它从复制中下来时,它才会有问题。

EN

回答 1

Stack Overflow用户

发布于 2013-07-14 08:47:33

登录备机,验证备机上的自动增量值是否等于或高于您主服务器上的当前最高值。可能发生的情况是,自动增量值不知何故在主设备和从设备之间失去了同步。一旦您知道了从设备的自动增量值,您就可以ALTER TABLE主机,并将自动增量起始值设置为高于从机上自动增量值的安全数值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17632587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档