我正在尝试在已经有3行的表中插入一个元素。
一个名为 usuarios = [ id (主要,自动增量), fid ,的表格first_name , last_name .. ..]
因此ID已经有3行: 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
是自动增量,如果不是;怎么设置呢? (这会解决问题吗?)
答案 0 :(得分:1)
如果您有权更改表,则应该可以使用此语句将其设置为自动增量:
ALTER TABLE usuarios modify id INT(11) NOT NULL AUTO_INCREMENT;
虽然我已经看到过有关错误的报告,但建议不要丢弃colulmn并重新创建它,如果上述内容因某些原因无法正常工作。这些帖子中推荐的语法是:
ALTER TABLE usuarios
DROP COLUMN id;
ALTER TABLE usuarios
ADD COLUMN idINT(11) NOT NULL AUTO_INCREMENT FIRST;
警告:首先在测试数据库中执行此操作。如果表将此作为外键使用,您需要小心这样做。它最多可能失败,或者在最坏的情况下打破所有关系。
MySql reference manual上有大量信息。