Kod Błędu: 1062. Duplicate entry ' 1 'for key 'PRIMARY'

Mam problem z tym Komunikatem o błędzie, kiedy próbuję tego:

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')

Kod Błędu: 1062. Duplicate entry ' 1 'for key 'PRIMARY'

Nie mam danych auto_increment, proszę o pomoc!

Jest to tabela powiązana, 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');
Author: FrancescoN, 2013-01-31

8 answers

Głównym powodem wygenerowania błędu jest fakt, że istnieje już wartość 1 dla kolumnyID, w której zdefiniujesz go jako PRIMARY KEY (wartości są unikalne ) W wstawianej tabeli.

Dlaczego nie ustawić kolumny ID jako AUTO_INCREMENT?

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

I kiedy wstawiasz rekord, możesz teraz pominąć kolumnę ID

INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`viale`, `num_civico`, ...) 
VALUES ('Viale Cogel ', '120', ...)
 31
Author: John Woo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-31 14:42:32

Jeśli używasz PHPMyAdmin Możesz rozwiązać ten problem, wykonując to:

Uwaga: nie używaj tego rozwiązania, jeśli chcesz zachować istniejące rekordy w tabeli.

Krok 1: Wybierz metodę eksportu bazy danych do niestandardowego:

Tutaj wpisz opis obrazka

Krok 2: przed wstawieniem w opcjach tworzenia danych upewnij się, że sprawdzisz truncate table:

Tutaj wpisz opis obrazka

Teraz możesz pomyślnie zaimportować tę bazę danych.

 19
Author: Indrasinh Bihola,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-18 06:11:54

Jeśli próbujesz wypełnić tabelę z Zrzutu SQL, upewnij się, że tabela wymieniona w poleceniach "INSERT INTO" zrzutu jest tą samą tabelą, którą próbujesz wypełnić. Otwarcie "MyTable" i importowanie za pomocą zrzutu SQL spowoduje dokładnie taki błąd, jeśli zrzut próbuje umieścić wpisy w "MyOtherTable", które mogą już mieć wpisy.

 7
Author: CodeOwl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-29 14:24:47

Jeśli masz nową bazę danych i dokonujesz świeżo czystego importu, problem może wynikać z wstawiania danych, które zawierają przyrost "0", a to przekształci się w " 1 " z AUTO_INCREMENT i spowoduje ten błąd.

Moim rozwiązaniem było użycie w pliku importu sql.

SET SESSION sql_mode='NO_AUTO_VALUE_ON_ZERO';
 6
Author: Andrada,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-06 00:13:18

Problem jest związany z Twoim plikiem - próbujesz utworzyć DB za pomocą kopii-na górze Pliku znajdziesz coś takiego:

Tworzenie bazy danych jeśli nie istnieje *THE_NAME_OF_YOUR_DB* domyślny zestaw znaków latin1 zestawianie latin1_general_ci; Użycie *THE_NAME_OF_YOUR_DB*;

I jestem pewien, że masz już DB o tej nazwie - na tym samym serwerze-sprawdź. Po prostu zmień nazwę lub Wymaż tę linię!

 2
Author: bito_,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-25 09:24:32

Kiedy dostaję tego rodzaju błąd musiałem zaktualizować typ danych o wycięcie. Na przykład, jeśli mam go jako "tiny int" zmień go na " small int" ~ Nita

 2
Author: Nita,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-03 15:26:00

Właśnie natknąłem się na ten sam problem, ale tutaj wydawało się, że wynika to z faktu, że zadeklarowałem kolumnę ID jako niepodpisaną i że w połączeniu z wartością ID '0' (zero) spowodowało, że import nie powiódł się...

Więc zmieniając wartość każdego ID (PK-column), który zadeklarowałem '0' i każdy odpowiadający FK na nową wartość, mój problem został rozwiązany.

 1
Author: user4563764,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-13 14:03:59

Sprawdź też swoje wyzwalacze.

Napotkał to przy użyciu wyzwalacza tabeli historii, który próbował wstawić główną tabelę id do tabeli historii id zamiast prawidłowej hist-table.source_id kolumna.

Instrukcja aktualizacji w ogóle nie dotykała Kolumny id, więc znalezienie jej zajęło trochę czasu:

UPDATE source_table SET status = 0;

WYZWALACZ próbował zrobić coś podobnego do tego:

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

Został poprawiony do czegoś takiego:

FOR EACH ROW
BEGIN
    INSERT INTO `history_table` (`action`,`source_id`,`status`,`time_created`)
    VALUES('update', NEW.id, NEW.status, NEW.time_created);
END;
 1
Author: sastorsl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-23 16:56:09