it-swarm.com.ru

Код ошибки: 1062. Дублирующая запись "1" для ключа "ПЕРВИЧНЫЙ"

У меня проблема с этим сообщением об ошибке, когда я пытаюсь это:

INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`,  
`data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, 
`telefono`, `mail`, `web`, `Nome-paese`, `Comune`) 
VALUES (1, 'Viale Cogel ', '120', '2012-05-21', '2012-09-30', '08:00', '23:30',
'461801243', '[email protected]', 'Bolzanoturismo.it', 'Bolzano', 'BZ')

Код ошибки: 1062. Дублирующаяся запись «1» для ключа «PRIMARY»

У меня нет данных auto_increment, ПОЖАЛУЙСТА, ПОМОГИТЕ мне! 

Это связано с таблицей, UFFICIO-INFORMAZIONI

CREATE  TABLE IF NOT EXISTS `PROGETTO`.`UFFICIO-INFORMAZIONI` (
  `ID` INT(11) NOT NULL ,
  `viale` VARCHAR(45) NULL ,
  `num_civico` VARCHAR(5) NULL ,
  `data_apertura` DATE NULL ,
  `data_chiusura` DATE NULL ,
  `orario_apertura` TIME NULL ,
  `orario_chiusura` TIME NULL ,
  `telefono` VARCHAR(15) NULL ,
  `mail` VARCHAR(100) NULL ,
  `web` VARCHAR(100) NULL ,
  `Nome-paese` VARCHAR(45) NOT NULL ,
  `Comune` CHAR(2) NOT NULL ,
  PRIMARY KEY (`ID`) ,
  INDEX `Nome_paese` (`Nome-paese` ASC) ,
  INDEX `Comune` (`Comune` ASC) ,
  CONSTRAINT `Nome_paese`
    FOREIGN KEY (`Nome-paese` )
    REFERENCES `PROGETTO`.`PAESE` (`Nome-paese` )
    ON DELETE NO ACTION
    ON UPDATE CASCADE,
  CONSTRAINT `Comune`
    FOREIGN KEY (`Comune` )
    REFERENCES `PROGETTO`.`PAESE` (`Comune` )
    ON DELETE NO ACTION
    ON UPDATE CASCADE)
ENGINE = InnoDB

INSERT INTO  

INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`) VALUES (1, 'Viale Cogel ', '120', '2012-05-21', '2012-09-30', '08:00', '23:30', '461801243', '[email protected]', 'Bolzanoturismo.it', 'Bolzano', 'BZ');
    INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`) VALUES (2, 'Via Olmo', '45', '2012-05-01', '2012-09-30', '08:00', '23:30', '393495169301', '[email protected]', 'Lechinformation.it', 'Lech', 'BZ');
    INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`) VALUES (3, 'Via Quercia', '37', '2012-05-11', '2012-09-30', '08:00', '23:30', '393381679321', '[email protected]', 'Trentoinformaiozni.it', 'Trento', 'TN');
    INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`) VALUES (4, 'Via Atene', '76', '2012-06-01', '2012-09-15', '08:00', '23:30', '39349361345', '[email protected]', 'SanMartino.it', 'San Martino di Castrozza', 'TN');
    INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`) VALUES (5, 'Via Salice', '45', '2012-05-01', '2012-09-20', '08:00', '23:30', NULL, '[email protected]', 'Pejoturismo.it', 'Pejo', 'TN');
    INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`) VALUES (6, 'Piazza Sempreverde', '34', '2012-05-15', '2012-09-15', '08:00', '23:30', '392516789', '[email protected]', 'Ortisei.it', 'Ortisei', 'BZ');
19
FrancescoN

 главный Причина возникновения ошибки заключается в том, что уже существует существующее значение 1 для столбца ID, в котором вы определяете его как PRIMARY KEY ( значения уникальны ) в вставляемой таблице.

Почему бы не установить столбец ID как AUTO_INCREMENT?

CREATE  TABLE IF NOT EXISTS `PROGETTO`.`UFFICIO-INFORMAZIONI` (
  `ID` INT(11) NOT NULL AUTO_INCREMENT,
  `viale` VARCHAR(45) NULL ,
   .....

и когда вы вставляете запись, вы можете пропустить столбец ID

INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`viale`, `num_civico`, ...) 
VALUES ('Viale Cogel ', '120', ...)
20
John Woo

Если вы используете PHPMyAdmin Вы можете решить эту проблему следующим образом:

ПРЕДУПРЕЖДЕНИЕ. Не используйте это решение, если вы хотите сохранить существующее записи в вашей таблице.

Шаг 1: Выберите метод экспорта базы данных в пользовательский:

enter image description here

Шаг 2: Пожалуйста, не забудьте проверить таблицу усечений перед вставкой в ​​параметры создания данных:

enter image description here

Теперь вы можете успешно импортировать эту базу данных.

15
Indrasinh Bihola

Если вы пытаетесь заполнить таблицу из дампа SQL, убедитесь, что таблица, указанная в инструкциях «INSERT INTO» дампа, является той же самой, которую вы пытаетесь заполнить. Открытие «MyTable» и импорт с дампом SQL приведут к возникновению именно такой ошибки, если дамп пытается поместить записи в «MyOtherTable», который может уже иметь записи.

7
CodeOwl

Проблема связана с вашим файлом - вы пытаетесь создать базу данных, используя копию - в верхней части файла вы найдете что-то вроде этого:

СОЗДАТЬ БАЗУ ДАННЫХ, ЕСЛИ НЕ СУЩЕСТВУЕТ *THE_NAME_OF_YOUR_DB* УСТАНОВКА СИМВОЛА ПО УМОЛЧАНИЮ latin1 COLLATE latin1_general_ci; USE *THE_NAME_OF_YOUR_DB*;

и я уверен, что у вас уже есть БД с этим именем - В ТО ЖЕ СЕРВЕР - пожалуйста, проверьте. Просто измените имя OR. УДАЛИТЕ ЭТУ ЛИНИЮ!

2
bito_

Когда я получил такую ​​ошибку, мне пришлось обновить тип данных на ступеньку ниже. Например, если у меня есть «small int», измените его на small int ~ Nita

2
Nita

Я только что столкнулся с той же проблемой, но здесь, похоже, это произошло из-за того, что я объявил ID-столбец UNSigned и что в сочетании с ID-значением '0' (ноль) вызвал сбой импорта ...

Таким образом, изменив значение каждого идентификатора (PK-столбца), который я объявил «0», и каждого соответствующего FK на новое значение, моя проблема была решена.

1
user4563764

Также проверьте свои триггеры.

Обнаружено это с помощью триггера таблицы истории, который попытался вставить основную таблицу id в таблицу истории id вместо правильного столбца hist-table.source_id.

Оператор update вообще не касался столбца id, поэтому потребовалось некоторое время, чтобы найти:

UPDATE source_table SET status = 0;

Триггер попытался сделать что-то похожее на это:

FOR EACH ROW
BEGIN
    INSERT INTO `history_table` (`action`,`id`,`status`,`time_created`)
    VALUES('update', NEW.id, NEW.status, NEW.time_created);
END;

Было исправлено что-то вроде этого:

FOR EACH ROW
BEGIN
    INSERT INTO `history_table` (`action`,`source_id`,`status`,`time_created`)
    VALUES('update', NEW.id, NEW.status, NEW.time_created);
END;
0
sastorsl