0

我有一个主机和从机(不同的机器),并且由于一个重复输入错误而停止了从机。如果我在从属设备上运行导致错误的查询(我可以通过 SHOW SLAVE STATUS 看到该查询)(复制停止时),则没有错误,但从属设备被此查询停止(事实上,如果我尝试用 START SLAVE 重新开始复制​​,错误再次出现)。为什么正确的查询(我可以在从属设备上运行它而没有错误消息)可以停止复制?

表结构

CREATE TABLE `table` (
  `a` int(9) unsigned NOT NULL AUTO_INCREMENT,
  `b` varchar(255) NOT NULL,
  `c` varchar(25) DEFAULT NULL,
  `d` char(40) NOT NULL,
  `e` char(64) DEFAULT NULL,
  `f` varchar(255) NOT NULL,
  `g` varchar(100) NOT NULL,
  `h` varchar(25) NOT NULL,
  `i` enum('disabled','enabled') DEFAULT 'disabled',
  `j` enum('disabled','enabled') DEFAULT 'disabled',
  `k` enum('disabled','enabled') DEFAULT 'disabled',
  `l` enum('production','sandbox') CHARACTER SET latin1 NOT NULL DEFAULT 'production',
  `m` enum('active','uninstalled') NOT NULL DEFAULT 'active',
  `n` datetime NOT NULL,
  `o` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
  `p` int(11) DEFAULT NULL,
  `q` char(40) DEFAULT NULL,
  `r` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `s` char(40) DEFAULT NULL,
  PRIMARY KEY (`a`),
  UNIQUE KEY `b_d_index` (`b`,`d`),
  KEY `e` (`e`),
  KEY `f` (`f`),
  KEY `g` (`g`),
  KEY `h` (`h`),
  KEY `i` (`i`),
  KEY `j` (`j`),
  KEY `k` (`k`),
  KEY `l` (`l`),
  KEY `m` (`m`),
  KEY `n` (`n`),
  KEY `o` (`o`),
  KEY `p` (`p`),
  KEY `d` (`d`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

完全错误

Error 'Duplicate entry 'B-D' for key 'b_d_index'' on query. Default database: 'database_name'. Query:
INSERT INTO `table` 
SET `b` = 'B',`c` = 'C',`d` = 'D',`e` = 'E',`f` = 'F',`g` = 'G',`h` = 'H',`i` = 'I',`j` = 'J',`k` = 'K',`l` = 'L',`m` = 'M',`n` = NOW(),`o` = NOW(),`p` = NULL,`q` = 'Q',`r` = NOW() 
ON DUPLICATE KEY UPDATE `c` = 'C',`d`= 'D',`e`='E',`f`='F',`g`='G',`h`='H',`i`='I',`j`='J',`k`='K',`l`='L',`m`='M',`o`='2012-12-19 14:06:34'

提前致谢。

4

0 回答 0