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'的更多相关文章

  1. 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='%' whe ...

  2. 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 ...

  3. sqlalchemy.exc.IntegrityError: (mysql.connector.errors.IntegrityError) 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

    排错: 看到 Duplicate entry '1' for key 'PRIMARY'是主键错误 看一看自己添加的数据id是1 再查询一下数据库中的表,发现id=1的记录已经存在了 所以在代码中让i ...

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

    ALTER TABLE table1 ADD COLUMN column1 VARCHAR(400) DEFAULT NULL; ERROR 1062 (23000): Duplicate entry ...

  5. RDS 在线DDL诡异报错ERROR 1062 (23000): Duplicate entry

    RDS上执行报错如下: MySQL [ad_billing]> ALTER TABLE ad_spending ADD COLUMN impr bigint(20) NOT NULL DEFAU ...

  6. #1062 - Duplicate entry '0' for key 'PRIMARY'—— mysql的小问题

    问题:# 1062 -重复输入“0”. 原因:我估计可能是数据表中主键这一栏已经有一个为“0”了,一般出现这种问题是以int类型的字段在输入时没有输如数据,而int类型默认值为“0”,而你之前第一条数 ...

  7. Failed to execute query: Duplicate entry '0' for key 'PRIMARY'

    今天在做php登陆和登出会插入数据到log表中,,结果报错了:如下: Failed to execute query: Duplicate entry '0' for key 'PRIMARY' SQ ...

  8. Duplicate entry '0' for key 'PRIMARY'的一种可能的解决办法

    在MySQL设计好数据库往往数据库中插入数据的时候, 因为主键ID默认是不赋值的,只给其他项目赋值了,相关的SQL代码是这样的 StringBuilder strSql = new StringBui ...

  9. Duplicate entry '0' for key 'PRIMARY'

    一般使用ORM时,提交新增实体时, mysql会出现此错误:Duplicate entry '0' for key 'PRIMARY' 原因是插入语句,未提供主键的值,且主键是非自增长的. 解决办法是 ...

随机推荐

  1. eclipse添加hadoop开发插件

    在开发hadoop的时候去查找了一下eclipse marketplace是没有找到hadoop的插件,上网又找了一下发现原来hadoop中其实是带有这样的插件的, 其实很简单只要将这个插件复制到ec ...

  2. C#中XML与对象之间的序列化、反序列化

    直接上代码: using System; using System.IO; using System.Text; using System.Xml; using System.Xml.Serializ ...

  3. ReactNative学习-ListView

    ListView相对于View的优点就在于可以不用一下子就把数据加载完,而是滑动着加载着数据,可以缓解数据加载,避免软件卡死. 官方文档:https://facebook.github.io/reac ...

  4. jQuery图片提示和文字提示

    图片提示: 效果如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  5. django 学习-15 .Django文件上传(用户注册)

    1.vim blog/views.py from django.shortcuts  import  render_to_responsefrom django.http   import HttpR ...

  6. windows下,python+scrapy环境搭建

    •安装lxml(官网给出的地址http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml,下载whl文件安装) •安装zope.interface https:// ...

  7. JS数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...

  8. OC6_代理的基本概念

    // // Person.h // OC6_代理的基本概念 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhang ...

  9. OC4_遵守多个协议

    // // Calulator.h // OC4_遵守多个协议 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zha ...

  10. spring3中新增的@value注解

    在spring 3.0中,可以通过使用@value,对一些如xxx.properties文件 中的文件,进行键值对的注入,例子如下: 1 首先在applicationContext.xml中加入:   ...