视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ERROR1062(23000):Duplicateentry‘1’forkey‘P
2020-11-09 12:55:59 责编:小采
文档


本着“暂时无法解决的问题都是好问题”的原则记下这个问题,给以后的闲暇留下一些思考的粮食。 问题描述: 1.在一个插入过记录,有primary key的innodb表里面清空数据(或者删除并重建表)然后重新插入数据的时候总是会提示标题所示的信息。2.重新建表的时候sh

本着“暂时无法解决的问题都是好问题”的原则记下这个问题,给以后的闲暇留下一些思考的粮食。
问题描述:
1.在一个插入过记录,有primary key的innodb表里面清空数据(或者删除并重建表)然后重新插入数据的时候总是会提示标题所示的信息。2.重新建表的时候show create table 不会显示AUTO_INCREMENT=xx,但是向里面执行插入操作就会报错,这时候再show create table的时候就发现AUTO_INCREMENT=xx.
问题场景:

mysql> drop table cluster;
Query OK, 0 rows affected (0.06 sec)
mysql> CREATE TABLE `cluster` (
 -> `id` int(11) NOT NULL AUTO_INCREMENT,
 -> `name` varchar(50) NOT NULL DEFAULT '' COMMENT '集群名称',
 -> `cdr_api` varchar(255) NOT NULL DEFAULT '' COMMENT '话单接口地址',
 -> `monitor_api` varchar(255) NOT NULL DEFAULT '' COMMENT '监控接口地址',
 -> `control_api` varchar(255) NOT NULL DEFAULT '' COMMENT '控制接口地址',
 -> `is_public` tinyint(2) NOT NULL DEFAULT '0' COMMENT '是否为共有集群1是0否',
 -> `status` tinyint(2) NOT NULL DEFAULT '0' COMMENT '集群是否有效1是0否',
 -> PRIMARY KEY (`id`)
 -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='集群管理表';
Query OK, 0 rows affected (0.23 sec)
mysql> show create table cluster;
+---------+---------------------------------------------------------------------------+
| Table | Create Table |
+---------+---------------------------------------------------------------------------+
| cluster | CREATE TABLE `cluster` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(50) NOT NULL DEFAULT '' COMMENT '集群名称',
 `cdr_api` varchar(255) NOT NULL DEFAULT '' COMMENT '话单接口地址',
 `monitor_api` varchar(255) NOT NULL DEFAULT '' COMMENT '监控接口地址',
 `control_api` varchar(255) NOT NULL DEFAULT '' COMMENT '控制接口地址',
 `is_public` tinyint(2) NOT NULL DEFAULT '0' COMMENT '是否为共有集群1是0否',
 `status` tinyint(2) NOT NULL DEFAULT '0' COMMENT '集群是否有效1是0否',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='集群管理表' |
+---------+-------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> insert into cluster(`id`,`name`,`cdr_api`,`monitor_api`,`control_api`,`is_public`,`status`) select `id`,`name`,`daddr`,`monitorurl`,`opensipsurl`,`type`,1 from trunking.trunking_manager;
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql> show create table cluster;
+---------+--------------------------------------------------------------------------+
| Table | Create Table |
+---------+--------------------------------------------------------------------------+
| cluster | CREATE TABLE `cluster` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(50) NOT NULL DEFAULT '' COMMENT '集群名称',
 `cdr_api` varchar(255) NOT NULL DEFAULT '' COMMENT '话单接口地址',
 `monitor_api` varchar(255) NOT NULL DEFAULT '' COMMENT '监控接口地址',
 `control_api` varchar(255) NOT NULL DEFAULT '' COMMENT '控制接口地址',
 `is_public` tinyint(2) NOT NULL DEFAULT '0' COMMENT '是否为共有集群1是0否',
 `status` tinyint(2) NOT NULL DEFAULT '0' COMMENT '集群是否有效1是0否',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='集群管理表' |
+---------+---------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select * from cluster;
Empty set (0.00 sec)
下载本文
显示全文
专题