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是自增量的,如果不是;怎么设置呢?(这样可以解决问题吗?)
如果您有权更改表,您应该能够使用此语句将其设置为自动增量:
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 参考手册中有大量信息。