【发布时间】:2014-09-04 12:59:12
【问题描述】:
我收到此错误(1062, "Duplicate entry '0' for key 'PRIMARY'")。这发生在我将我的 Django 应用程序从 sqlite3 迁移到 MySQL 之后。这是相关表:
mysql> describe meddy1_specialization;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(30) | NO | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)
这是模型:
class Specialization(models.Model):
name = models.CharField(max_length=30)
def __unicode__(self):
return self.name
这是表格中的数据:
mysql> select * from meddy1_specialization;
+----+--------------------+
| id | name |
+----+--------------------+
| 1 | Dentist |
| 2 | Dermatologist |
| 3 | Primary Care |
| 4 | Ophthalmologist |
| 5 | Pediatrician |
| 6 | Orthopedist |
| 7 | Ear, Nose & Throat |
| 8 | Gynecologist |
| 9 | test |
| 13 | test |
| 14 | test1 |
+----+--------------------+
11 rows in set (0.00 sec)
【问题讨论】:
-
如果错误发生在您迁移表之后,也许您应该说一下您实际在做什么何时错误发生了?
-
产生错误的
insert或update语句是什么? -
@GordonLinoff 所以我正在使用 Django,它隐藏了插入语句/在后台处理它。你可以看看我上面的模型,它来自models.py。此外,当我尝试使用控制台中的 MySQL 插入语句手动添加数据时,它可以工作。但是当我尝试从 Django 管理控制台添加专业化时,它给了我错误,这也是这篇文章的标题。
-
@DanielRoseman 我试图从管理控制台添加一个新的专业化。
-
您能解释一下您是如何迁移数据库的吗?另外,您正在使用的 django 版本。
标签: mysql django duplicates primary-key auto-increment