MySQL错误 - #1062 - 密钥2的重复条目''

nut*_*man 25 mysql database

我正在尝试将大量用户插入MySQL数据库,但每次尝试我都会收到错误消息:

#1062 - Duplicate entry '' for key 2
Run Code Online (Sandbox Code Playgroud)

它给了我这个,因为第二列在很多条目上都是空白的,所以在第2列中插入一个空白条目后,它不会让我添加另一个.但是,当我昨天添加大部分列表时,即使我昨天添加的很多条目在第2列中也有一个空白单元格,但我没有得到此错误.这是怎么回事?

这是插入1个条目的sql代码.其余的遵循相同的格式:

INSERT INTO users
  (`id`,`title`,`firstname`,`lastname`,`company`,`address`,`city`,`county`
   ,`postcode`,`phone`,`mobile`,`category`,`email`,`password`,`userlevel`) 
VALUES     
  ('','','John','Doe','company','Streeet','city','county'
  ,'postcode','phone','','category','emial@email.co.uk','','');
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 19

除了Sabeen的回答:

第一列ID是您的主键.
不要插入''主键,而是插入null.

INSERT INTO users
  (`id`,`title`,`firstname`,`lastname`,`company`,`address`,`city`,`county`
   ,`postcode`,`phone`,`mobile`,`category`,`email`,`password`,`userlevel`) 
VALUES     
  (null,'','John','Doe','company','Streeet','city','county'
  ,'postcode','phone','','category','emial@email.co.uk','','');
Run Code Online (Sandbox Code Playgroud)

如果它是一个自动增量键,这将解决您的问题.
如果没有id自动增量键,并始终插入null其中以触发自动增量.

MySQL有一个设置,只在null插入或插入0和的两个插入时自动增加键null.不要依赖此设置,因为如果更改服务器,代码可能会中断.
如果您插入null代码将始终有效.

请参阅:http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html


Sab*_*lik 11

似乎第二列被设置为唯一索引.如果你不需要删除它,你的错误就会消失.可能你错误​​地添加了索引,这就是为什么你今天看到错误并且昨天没有看到它们的原因