it-roy-ru.com

Код ошибки: 1062. Дубликат записи "ПЕРВИЧНЫЙ"

Итак, мой профессор дал мне таблицы для вставки в базу данных, но когда я выполняю его код, 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»

Извините, если есть какая-либо ошибка заклинания. Спасибо!

4
Mike

Вы пытаетесь вставить две строки с одинаковым первичным ключом.

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), поэтому любая строка с одинаковыми 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);

Удалите одну из строк или измените первичный ключ одной из них.

2
Denis Spalenza

Этот код ошибки 1062 из-за повторяющейся записи. Вы пытаетесь вставить значение, которое уже существует, в поле первичного ключа. Недавно я решил эту проблему, добавив auto_increment в поле первичного ключа. Я следовал за исправлением, предоставленным в этом сообщении как решить код ошибки mysql: 1062 повторяющихся записи? это сработало для меня. Помочь тебе тоже.

1
John Cen

У меня была та же ошибка при попытке установить столбец в качестве первичного ключа. Я просто удалил столбец и воссоздал его, что позволило мне назначить его в качестве первичного ключа. Это также устраняет ошибку # 1075, когда требуется, чтобы столбец с автоинкрементом был ключом (если вы пытаетесь установить для столбца автоинкремент).

1
m3ldEr7ake

У вас есть ошибка дубликата ключа во второй таблице ARTICULOS . У вас есть первичный ключ с комбинацией двух столбцов (articulo, cod_fabricante).

Таким образом, все строки однозначно определены в комбинации этих столбцов. удалите повторяющиеся строки из второй таблицы или измените первичный ключ.

0
Aman Aggarwal