ERROR 1062 (23000): Duplicate entry '0' for key 'PRIMARY'

OS: centos 6.3
DB: 5.5.14

测试创建yoon测试表,没有主键,没有索引,基础数据内容如下:

mysql> select * from yoon;
+----+----------+------+
| id | name | user |
+----+----------+------+
| 1 | \""##!aa | NULL |
| 2 | z2 | NULL |
| 3 | z3 | NULL |
| 4 | z4 | NULL |
| 5 | z5 | NULL |
+----+----------+------+
5 rows in set (0.00 sec)

测试通过一条命令将id设为自增主键,命令alter table yoon add constraint auto_increment primary key yoon(id);创建成功,但是插入2条数据发现报错,场景如下:

mysql> desc yoon;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   |     | 0       |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| user  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

mysql> select * from yoon;
+----+----------+------+
| id | name     | user |
+----+----------+------+
|  1 | \""##!aa | NULL |
|  2 | z2       | NULL |
|  3 | z3       | NULL |
|  4 | z4       | NULL |
|  5 | z5       | NULL |
+----+----------+------+
5 rows in set (0.00 sec)

mysql> show index from yoon;
Empty set (0.00 sec)

mysql> alter table yoon add constraint auto_increment primary key yoon(id);
Query OK, 0 rows affected (0.29 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show index from yoon;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| yoon  |          0 | PRIMARY  |            1 | id          | A         |           6 |     NULL | NULL   |      | BTREE      |         |               |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
1 row in set (0.01 sec)

mysql> insert into yoon(name,user) values (‘z‘,‘HHH‘); 
Query OK, 1 row affected (0.02 sec)

mysql> select * from yoon;
+----+----------+------+
| id | name     | user |
+----+----------+------+
|  0 | z        | HHH  |
|  1 | \""##!aa | NULL |
|  2 | z2       | NULL |
|  3 | z3       | NULL |
|  4 | z4       | NULL |
|  5 | z5       | NULL |
+----+----------+------+
6 rows in set (0.01 sec)

mysql> insert into yoon(name,user) values (‘z6‘,‘HHH‘); 
ERROR 1062 (23000): Duplicate entry ‘0‘ for key ‘PRIMARY‘

mysql> delete from yoon where id=0;
Query OK, 1 row affected (0.01 sec)

mysql> show index from yoon;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| yoon  |          0 | PRIMARY  |            1 | id          | A         |           6 |     NULL | NULL   |      | BTREE      |         |               |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
1 row in set (0.00 sec)

mysql> select * from yoon;
+----+----------+------+
| id | name     | user |
+----+----------+------+
|  1 | \""##!aa | NULL |
|  2 | z2       | NULL |
|  3 | z3       | NULL |
|  4 | z4       | NULL |
|  5 | z5       | NULL |
+----+----------+------+
5 rows in set (0.00 sec)

mysql> alter table yoon modify column id int auto_increment;
Query OK, 5 rows affected (0.03 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from yoon;
+----+----------+------+
| id | name     | user |
+----+----------+------+
|  1 | \""##!aa | NULL |
|  2 | z2       | NULL |
|  3 | z3       | NULL |
|  4 | z4       | NULL |
|  5 | z5       | NULL |
|  6 | z6       | HHH  |
+----+----------+------+
6 rows in set (0.00 sec)

总结:主要原因alter语法使用不正确,有时候不报错,并不代表命令正确。具体语法如下:
http://dev.mysql.com/doc/refman/5.0/en/alter-table.html

ERROR 1062 (23000): Duplicate entry '0' for key 'PRIMARY'

时间: 2024-08-04 16:26:43

ERROR 1062 (23000): Duplicate entry '0' for key 'PRIMARY'的相关文章

ERROR 1062 (23000): Duplicate entry '1-1' for key 'PRIMARY'

这个错误是说,由于某个SQL操作造成了,表中主键重复. 例子: create table t(x int,y int,z int, primary key(x,y)); insert into t(x,y,z) values(1,1,0),(1,2,0),(1,3,0); --在这里还是好的,下面我们要用一条语句来造成错误-- update t set y=1;-- 看到了没有,这一条语句会造成,三行重复的数据,所以它就报错了哦. ERROR 1062 (23000): Duplicate en

ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

use mysql mysql> select host, user from user; 将相应用户数据表中的host字段改成'%': update user set host='%' where user='root'; ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 不予理会 flush privileges; 重新远程连接OK ERROR 1130: Host '192.168.1.3' is not allo

ERROR 1062 (23000): Duplicate entry for key 'PRIMARY'

ALTER TABLE table1 ADD COLUMN column1 VARCHAR(400) DEFAULT NULL; ERROR 1062 (23000): Duplicate entry '82133627' for key 'PRIMARY' select * from table1 where <primary_key_field>='82133627'; Primary key - primary_key_field int(11) NOT NULL solution -

Duplicate entry &#39;0&#39; for key &#39;PRIMARY&#39;

今天在测试程序的时候,发现一个问题,就是在给用户添加图片的时候,虽然图片已经被上传到服务器的发布目录中,但是eclipse控制台报错显示:Duplicate entry '0' for key 'PRIMARY' 的错误,而且这个错误属于MySQLIntegrityConstraintViolationException,后来经过思考,发现在设计相关表的时候,id的默认被设为了0,详情看图,改正后,测试一切顺利!(详情也可以看图) Duplicate entry '0' for key 'PRI

mysql Duplicate entry &#39;9223372036854775807&#39; for key &#39;PRIMARY&#39;

mysql插入数据报错提示: ERROR 1062(23000) Duplicate entry  '9223372036854775807' for key 'PRIMARY' 发现问题果断 直接 把字段改成无符号的类型UNSIGNED 7.BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20 大整数.带符号的范围是-9223372036854775808到9223372036854775807.无符号的范围是0到18446744073709551615. 提示:这

Navicat导入excel表报错 1062 Duplicate entry &#39;10583779&#39; for key &#39;PRIMARY&#39;

今天用Navicat导入数据库是遇到一个问题,excel表格中有三万多条数据,正常导入的只有600条,查看报错发现提示1062 Duplicate entry '10583779' for key 'PRIMARY'.百度查询发现网上都是提示主键冲突,清空数据库数据重新导入即可,多次情况数据库发现报错一样存在,后查询发现excel表中有多条重复记录,对excel表格中数据去重处理后,重新导入即可正常导入. 分析原因:主键冲突时所有冲突的数据不会被导入,成功导入的是没有主键冲突的数据. Navic

pymysql.err.IntegrityError: (1062, &quot;Duplicate entry &#39;roxml-ROXML&#39; for key &#39;PRIMARY&#39;&quot;)

在<Python数据挖掘-概念.方法与实践>一书的第3章实体匹配中,如果一路按照作者的代码及SQL语句进行配置运行的话,会出现如题目所示的错误.根据python脚本的执行错误提示显示,错误发生在脚本中的第一个INSERT INTO语句中. 其实并不是到插入roxml时候才会报错,而是在前面插入optionparser的时候就已经报错了.这个错误意思是代码试图在表中主键列被插入两个重复值.这个问题耗费了我三个小时,才最终把它解决. 书中的第一个INSERT语句目的是要把具有相同URL的项目的项目

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry &#39;qingmu&#39; for key &#39;PRIMARY&#39;

### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'qingmu' for key 'PRIMARY' ### The error may involve com.qingmu2.core.dao.seller.SellerDao.insertSelective-Inline ### The

Duplicate entry &#39;1&#39; for key &#39;PRIMARY&#39;(报错)

使用MySQL+ibatis进行插入测试的时候,报错:信息如下: 测试插入 com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in com/study/ibatis/Student.xml. --- The error occurred while applying a parameter map. --- Check the addStudent-InlineParameterMap. ---