这个表的目的是按分钟收集多个统计数据(由name列指定),然后我编写了一些sql,将分钟的sum( )汇总为按名称的小时,将小时的sum( )汇总为天,依此类推。
下面是表结构:
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“给出的错误之一:
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命令,则工作正常。只有当它从复制中下来时,它才会有问题。
发布于 2013-07-14 08:47:33
登录备机,验证备机上的自动增量值是否等于或高于您主服务器上的当前最高值。可能发生的情况是,自动增量值不知何故在主设备和从设备之间失去了同步。一旦您知道了从设备的自动增量值,您就可以ALTER TABLE主机,并将自动增量起始值设置为高于从机上自动增量值的安全数值。
https://stackoverflow.com/questions/17632587
复制相似问题