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

本文探讨了使用MySQL ARCHIVE存储引擎时遇到的错误1022,并提供了四种解决方案。同时,详细解释了ARCHIVE引擎的特点及适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值