mysql archive存储引擎导入数据报duplicate key

DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`version` varchar(25) DEFAULT NULL COMMENT '版本号',
PRIMARY KEY (`id`)
) ENGINE=ARCHIVE AUTO_INCREMENT=5365 DEFAULT CHARSET=utf8 COMMENT='用户登录记录';
/*!40101 SET character_set_client = @saved_cs_client */;

INSERT INTO `test` VALUES (1,'0.9.8'),(2,'1.9.2',50);

ERROR 1022 (23000) at line 58: Can't write; duplicate key in table 'test'

解决办法:

1.将存储引擎改为innodb

2.将AUTO_INCREMENT改为0或1

3.删除主键定义,或者删除主键的自增属性

4.修改id列的主键索引为唯一索引或者普通索引

ARCHIVE 相关说明:

The ARCHIVE storage engine is used for storing large amounts of data without indexes in a very small footprint.

The ARCHIVE engine supports INSERT and SELECT, but not DELETE, REPLACE, or UPDATE . It does support ORDER BY operations, BLOB columns, and basically all but spatial data types (see Section 11.17.4.1, “MySQL Spatial Data Types”). The ARCHIVE engine uses row-level locking.

The ARCHIVE engine supports the AUTO_INCREMENT column attribute. The AUTO_INCREMENT column can have either a unique or nonunique index. Attempting to create an index on any other column results in an error . The ARCHIVE engine also supports the AUTO_INCREMENT table option in CREATE TABLE and ALTER TABLE statements to specify the initial sequence value for a new table or reset the sequence value for an existing table, respectively.

原文地址:https://www.cnblogs.com/zejin2008/p/7693804.html