主键有可能不是自增的吗?

Ton*_*bet 5 mysql sql insert auto-increment

我正在尝试在已经有 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(),'','')
Run Code Online (Sandbox Code Playgroud)

我收到这个 mysql 错误:

Duplicate entry '0' for key 1
Run Code Online (Sandbox Code Playgroud)

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

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

Dav*_*vid 3

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

ALTER TABLE usuarios  modify id INT(11) NOT NULL AUTO_INCREMENT;
Run Code Online (Sandbox Code Playgroud)

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

ALTER TABLE usuarios  
         DROP COLUMN id;

ALTER TABLE usuarios  
         ADD COLUMN idINT(11) NOT NULL AUTO_INCREMENT FIRST;
Run Code Online (Sandbox Code Playgroud)

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

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