4

我正在尝试在已经有 3 行的表中插入一个元素。

它是一个名为usuarios =[ id (primary, autoincrement), fid , first_name , last_name ..]的表

所以已经有 3 行的 id 为:0,1,2

当我尝试执行此查询时(注意我没有为 id 属性设置值)

INSERT INTO usuarios (fid,email,pass,first_name,last_name,avatar,bday,fecha,id_loc,id_loc_from) 
       VALUES       (-1,'toni@ideadeia.com','72253f579e7dc003da754dad4bd403a6','','','',NOW(),NOW(),'','')

我得到这个mysql错误:

Duplicate entry '0' for key 1

额外:我不知道这 3 个项目是如何插入的(如果通过界面,通过控制台查询,..)

所以问题是,我怎样才能确保它Primary Key是自动增量的,如果不是;如何设置?(这能解决问题吗?)

4

1 回答 1

3

如果您有权更改表,则应该能够使用此语句将其设置为自动增量:

ALTER TABLE usuarios  modify id INT(11) NOT NULL AUTO_INCREMENT;

尽管我已经看到了建议删除列并重新创建它的错误报告,但如果由于某种原因上述方法不起作用。这些帖子中推荐的语法是:

ALTER TABLE usuarios  
         DROP COLUMN id;

ALTER TABLE usuarios  
         ADD COLUMN idINT(11) NOT NULL AUTO_INCREMENT FIRST;

警告:首先在测试数据库中执行此操作。如果表使用它作为外键,您需要小心执行此操作。它充其量可能会失败,或者最坏的情况可能会破坏所有关系。

MySql 参考手册中有大量信息。

于 2012-06-01T21:15:38.163 回答