错误代码:1062。重复条目 'PRIMARY'
Posted
技术标签:
【中文标题】错误代码:1062。重复条目 \'PRIMARY\'【英文标题】:Error Code: 1062. Duplicate entry 'PRIMARY'错误代码:1062。重复条目 'PRIMARY' 【发布时间】:2015-04-26 10:42:40 【问题描述】:所以,我的教授给了我表格以将其插入数据库,但是当我执行他的代码时,mysql 不断给出错误代码:1062。 这是冲突表和插入:
表格
CREATE TABLE FABRICANTES(
COD_FABRICANTE integer NOT NULL,
NOMBRE VARCHAR(15),
PAIS VARCHAR(15),
primary key (cod_fabricante)
);
CREATE TABLE ARTICULOS(
ARTICULO VARCHAR(20)NOT NULL,
COD_FABRICANTE integer NOT NULL,
PESO integer NOT NULL ,
CATEGORIA VARCHAR(10) NOT NULL,
PRECIO_VENTA integer,
PRECIO_COSTO integer,
EXISTENCIAS integer,
primary key (articulo,cod_fabricante),
foreign key (cod_fabricante) references Fabricantes(cod_fabricante)
);
插入:
INSERT INTO FABRICANTES VALUES(10,'CALVO', 'ESPAÑA');
INSERT INTO FABRICANTES VALUES(15,'LU', 'BELGICA');
INSERT INTO FABRICANTES VALUES(20,'BARILLA', 'ITALIA');
INSERT INTO FABRICANTES VALUES(25,'GALLO', 'ESPAÑA');
INSERT INTO FABRICANTES VALUES(30,'PRESIDENT', 'FRANCIA');
INSERT INTO ARTICULOS VALUES ('Macarrones',20, 1, 'Primera',100,98,120);
INSERT INTO ARTICULOS VALUES ('Tallarines',20, 2, 'Primera',120,100,100);
INSERT INTO ARTICULOS VALUES ('Tallarines',20, 1, 'Segunda',99,50,100);
INSERT INTO ARTICULOS VALUES ('Macarrones',20, 1, 'Tercera',80,50,100);
INSERT INTO ARTICULOS VALUES ('Atún',10, 3, 'Primera',200,150,220);
INSERT INTO ARTICULOS VALUES ('Atún',10, 3, 'Segunda',150,100,220);
INSERT INTO ARTICULOS VALUES ('Atún',10, 3, 'Tercera',100,50,220);
INSERT INTO ARTICULOS VALUES ('Sardinillas',10, 1,'Primera',250,200,200);
INSERT INTO ARTICULOS VALUES ('Sardinillas',10, 1,'Segunda',200,160,200);
INSERT INTO ARTICULOS VALUES ('Sardinillas',10, 1,'Tercera',100,150,220);
INSERT INTO ARTICULOS VALUES ('Mejillones',10, 1, 'Tercera',90,50,200);
INSERT INTO ARTICULOS VALUES ('Mejillones',10, 1, 'Primera',200,150,300);
INSERT INTO ARTICULOS VALUES ('Macarrones',25, 1, 'Primera',90,68,150);
INSERT INTO ARTICULOS VALUES ('Tallarines',25, 1, 'Primera',100,90,100);
INSERT INTO ARTICULOS VALUES ('Fideos',25, 1, 'Segunda',75,50,100);
INSERT INTO ARTICULOS VALUES ('Fideos',25, 1, 'Primera',100,80,100);
INSERT INTO ARTICULOS VALUES ('Galletas Cuadradas',15, 1, 'Primera',100,80,100);
INSERT INTO ARTICULOS VALUES ('Galletas Cuadradas',15, 1, 'Segunda',70,50,100);
INSERT INTO ARTICULOS VALUES ('Galletas Cuadradas',15, 1, 'Tercera',50,40,100);
INSERT INTO ARTICULOS VALUES ('Barquillos',15, 1, 'Primera',100,80,100);
INSERT INTO ARTICULOS VALUES ('Barquillos',15, 1, 'Segunda',100,80,100);
INSERT INTO ARTICULOS VALUES ('Canutillos',15, 2, 'Primera',170,150,110);
INSERT INTO ARTICULOS VALUES ('Canutillos',15, 2, 'Segunda',120,150,110);
INSERT INTO ARTICULOS VALUES ('Leche entera',30, 1, 'Primera',110,100,300);
INSERT INTO ARTICULOS VALUES ('Leche desnat.',30, 1, 'Primera',120,100,300);
INSERT INTO ARTICULOS VALUES ('Leche semi.',30, 1, 'Primera',130,110,300);
INSERT INTO ARTICULOS VALUES ('Leche entera',30, 2, 'Primera',210,200,300);
INSERT INTO ARTICULOS VALUES ('Leche desnat.',30, 2, 'Primera',220,200,300);
INSERT INTO ARTICULOS VALUES ('Leche semi.',30, 2, 'Primera',230,210,300);
INSERT INTO ARTICULOS VALUES ('Mantequilla',30, 1, 'Primera',510,400,200);
INSERT INTO ARTICULOS VALUES ('Mantequilla',30, 1, 'Segunda',450,340,200);
错误:
Error Code: 1062. Duplicate entry 'Macarrones-20' for key 'PRIMARY'
如果我删除该行会给我同样的错误,但出现“Tallarines-20”
如有拼写错误,请见谅。谢谢!
【问题讨论】:
是我的回答有问题,还是你为什么不接受? @JonasPetersson DenisSpalenza 打败了你... 【参考方案1】:您正在尝试插入具有相同主键的两行。
INSERT INTO ARTICULOS VALUES ('Tallarines',20, 2, 'Primera',120,100,100);
INSERT INTO ARTICULOS VALUES ('Tallarines',20, 1, 'Segunda',99,50,100);
您可能需要将CATEGORIA
添加到表ARTICULOS
的主键中,因为您尝试多次插入具有相同主键的多行。
primary key (articulo,cod_fabricante, categoria)
【讨论】:
如果您尝试将包含重复的列设置为主键(我的情况),也会发生这种情况。 youtube.com/watch?v=UrYLYV7WSHM 应该不能那样做吧?【参考方案2】:第 7 行和第 8 行 INSERT
相等。您不能使用相同的主键输入多行。请注意,您的主键是集合:(articulate, cod_fabricante)
,因此任何具有相同 articulate
和 cod_fabricante
的行都会生成错误 1062。
INSERT INTO ARTICULOS VALUES ('Tallarines',20, 2, 'Primera',120,100,100);
INSERT INTO ARTICULOS VALUES ('Tallarines',20, 1, 'Segunda',99,50,100);
删除其中一行或更改其中一行的主键。
【讨论】:
你可以像乔纳斯所说的那样改变主键:primary key (articulo,cod_fabricante, categoria)
【参考方案3】:
此错误代码 1062 是由于重复条目。您正在尝试插入主键字段中已存在的值。最近,我通过在主键字段中添加 auto_increment 解决了这个问题。我遵循了这篇文章how to solve mysql error code : 1062 duplicate entry? 中提供的修复方法,它对我有用。也帮你。
【讨论】:
【参考方案4】:我在尝试将列设置为主键时遇到了同样的错误。我刚刚删除了该列并重新创建了它,这使我可以将其分配为主键。这也解决了 #1075 错误,它需要一个自动递增列作为键(如果您尝试将列设置为自动递增)。
【讨论】:
【参考方案5】:第二个表ARTICULOS中有重复键错误。 你有两列组合的主键(articulo,cod_fabricante)。
因此,所有行都是在这些列的组合中唯一定义的。从第二个表中删除重复行或更改主键。
【讨论】:
以上是关于错误代码:1062。重复条目 'PRIMARY'的主要内容,如果未能解决你的问题,请参考以下文章
MySQL PHPMyAdmin 错误 #1062 - 键 'PRIMARY' 的重复条目 '0'
#1062 - 键 'PRIMARY' 的重复条目 '19'
[23000][1062] 键 'PRIMARY' 的重复条目 '0'
如何修复完整性约束违规:1062 键“PRIMARY:Laravel Pivot Table”的重复条目“1-1”
pymysql.err.IntegrityError: (1062, "Duplicate entry 'roxml-ROXML' for key 'PRIMARY&
Navicat导入excel表报错 1062 Duplicate entry '10583779' for key 'PRIMARY'