web-dev-qa-db-ja.com

エラーコード:1062。重複したエントリ 'PRIMARY'

それで、私の教授はそれをデータベースに挿入するためのテーブルをくれましたが、彼のコードを実行すると、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:

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」が表示されます

スペルミスがあれば申し訳ありません。ありがとう!

5
Mike

同じ主キーを持つ2つの行を挿入しようとしています。

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)
5
Jonas Petersson

7番目と8番目のINSERT行は同じです。同じ主キーで複数の行を入力することはできません。主キーは(articulate, cod_fabricante)のセットであるため、同じarticulatecod_fabricanteの行はエラー1062を生成します。

INSERT INTO ARTICULOS VALUES ('Tallarines',20, 2, 'Primera',120,100,100);
INSERT INTO ARTICULOS VALUES ('Tallarines',20, 1, 'Segunda',99,50,100);

行の1つを削除するか、それらの1つの主キーを変更してください。

2
Denis Spalenza

このエラーコード1062は、重複したエントリが原因です。主キーフィールドに既に存在する値を挿入しようとしています。最近、auto_incrementを主キーフィールドに追加することでこの問題を解決しました。私はこの投稿で提供された修正を実行しました mysqlエラーコードを解決する方法:1062重複エントリ? うまくいきました。あなたも助けてください。

1
John Cen

列を主キーとして設定しようとしたときに、同じエラーが発生しました。列を削除して再作成しただけで、主キーとして割り当てることができました。これにより、自動インクリメント列をキーにする必要がある#1075エラーも解決されます(列を自動インクリメントに設定しようとした場合)。

1
m3ldEr7ake

2番目のテーブルARTICULOSに重複キーのエラーがあります。 2つの列(articulo、cod_fabricante)を組み合わせた主キーがあります。

したがって、すべての行はこれらの列の組み合わせで一意に定義されます。 2番目のテーブルから重複する行を削除するか、代わりに主キーを変更してください。

0
Aman Aggarwal