我发生了一件非常奇怪的事情,这是我的疑问:
TRUNCATE TABLE `cms_clients`;
INSERT IGNORE INTO `cms_clients` (`id`,`col1`,`col2`,`col3`) VALUES
(4,NULL,NULL,NULL),
(5,NULL,NULL,NULL),
(6,NULL,NULL,NULL),
(7,NULL,NULL,NULL),
(8,NULL,NULL,NULL);
我唯一的主要密钥是id
,即使我在查询中有truncate
和insert ignore
,它仍然会导致错误:
#1062 - Duplicate entry '4' for key 'PRIMARY' error
但是当它预览该错误并且我查看表格时,我可以看到行4
&已插入5
,因此行6
触发了错误;当我手动删除行4
和5
并再次运行查询时,我得到相同的错误,但是在另一行:#1062 - Duplicate entry '6' for key 'PRIMARY'
和我查看表格时的前一行相同看到插入了行4
,5
,6
和7
,因此我认为行8
正在触发错误。
这是表的架构:
CREATE TABLE `cms_clients` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`col1` varchar(200) NOT NULL,
`col2` varchar(180) NOT NULL,
`col3` varchar(180) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1
我做错了什么还是我的mysql开始有点奇怪?
修改 我只是在另一台计算机上试过它并且工作正常,我认为问题出在我的mysql而不是查询中。