webentwicklung-frage-antwort-db.com.de

Fehlercode: 1062. Doppelter Eintrag '1' für Schlüssel 'PRIMARY'

Ich habe ein Problem mit dieser Fehlermeldung, wenn ich dies versuche:

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

Fehlercode: 1062. Doppelter Eintrag '1' für Schlüssel 'PRIMARY'

Ich habe keine auto_increment-Daten, BITTE HELFEN Sie mich! 

Dies ist die Tabelle, 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

EINFÜGEN IN  

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

Das main Der Grund für die Generierung des Fehlers liegt darin, dass für die Spalte ID bereits ein Wert von 1 vorhanden ist, in dem Sie ihn als PRIMARY KEY ( Werte sind eindeutig ) in der eingefügten Tabelle definieren.

Warum nicht die Spalte ID als AUTO_INCREMENT setzen?

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

wenn Sie einen Datensatz einfügen, können Sie jetzt die Spalte ID überspringen.

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

Wenn Sie PHPMyAdmin .__ verwenden, können Sie dieses Problem lösen, indem Sie Folgendes tun:

VORSICHT: Verwenden Sie diese Lösung nicht, wenn Sie das vorhandene .__ beibehalten möchten. Datensätze in Ihrer Tabelle.

Schritt 1: Datenbankexportmethode nach benutzerdefiniert auswählen:

enter image description here

Schritt 2: Bitte überprüfen Sie vor dem Einfügen in die Datenerstellungsoptionen, ob die Tabelle abgeschnitten ist:

enter image description here

Jetzt können Sie diese Datenbank erfolgreich importieren.

15

Wenn Sie versuchen, eine Tabelle aus einem SQL-Dump aufzufüllen, stellen Sie sicher, dass die in den Anweisungen "INSERT INTO" des Dumps aufgeführte Tabelle mit derjenigen identisch ist, die Sie aufzufüllen versuchen. Wenn Sie "MyTable" öffnen und mit einem SQL-Dump importieren, wird genau dieser Fehler ausgegeben, wenn der Dump versucht, Einträge in "MyOtherTable" einzufügen, das möglicherweise bereits Einträge enthält.

7
CodeOwl

Das Problem hängt mit Ihrer Datei zusammen - Sie versuchen, eine Datenbank mit einer Kopie zu erstellen - oben in Ihrer Datei finden Sie Folgendes:

CREATE DATABASE WENN NICHT EXISTS *THE_NAME_OF_YOUR_DB* DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci; USE *THE_NAME_OF_YOUR_DB*;

und ich bin sicher, dass Sie bereits eine Datenbank mit diesem Namen haben - IN DEM GLEICHEN SERVER - bitte überprüfen. Ändern Sie einfach den Namen OR ERASE DIES LINE!

2
bito_

Wenn ich diese Art von Fehler bekomme, musste ich den Datentyp um eine Kerbe aktualisieren. Wenn ich es beispielsweise als "tiny int" habe, ändern Sie es in "small int" ~ Nita

2
Nita

Ich bin gerade auf das gleiche Problem gestoßen, aber hier schien es auf die Tatsache zurückzuführen zu sein, dass ich die ID-Spalte als UN-signiert deklariert habe und dass in Kombination mit dem ID-Wert '0' (Null) der Import fehlgeschlagen ist ...

Durch das Ändern des Werts jeder ID (PK-Spalte), die ich als "0" deklariert hatte, und jedes entsprechenden FK in den neuen Wert, wurde mein Problem gelöst.

1
user4563764

Wenn Sie eine neue Datenbank haben und einen neuen, sauberen Import durchführen, kann das Problem durch das Einfügen von Daten mit einer Inkrementierung von '0' entstehen, die mit AUTO_INCREMENT In '1' umgewandelt werden und diesen Fehler verursachen.

Meine Lösung war, in der SQL-Importdatei zu verwenden.

SET SESSION sql_mode='NO_AUTO_VALUE_ON_ZERO';
1
Andrada

Überprüfen Sie auch Ihre Auslöser.

Dies wurde durch einen Auslöser der Protokolltabelle festgestellt, der versuchte, die Haupttabelle id in die Protokolltabelle id anstelle der richtigen Spalte hist-table.source_id einzufügen.

Die Aktualisierungsanweisung hat die Spalte id nicht berührt. Es dauerte einige Zeit, bis Folgendes gefunden wurde:

UPDATE source_table SET status = 0;

Der Abzug versuchte etwas Ähnliches zu tun:

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

Wurde so korrigiert:

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