本著“暫時無法解決的問題都是好問題”的原則記下這個問題,給以后的閑暇留下一些思考的糧食。 問題描述: 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)
原文地址:ERROR 1062 (23000): Duplicate entry ‘1’ for key ‘P, 感謝原作者分享。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com