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.