Heim  >  Artikel  >  Datenbank  >  Warum erhalte ich in MySQL den Fehler „Doppelter Eintrag für Primärschlüssel“ (Code 1062)?

Warum erhalte ich in MySQL den Fehler „Doppelter Eintrag für Primärschlüssel“ (Code 1062)?

Barbara Streisand
Barbara StreisandOriginal
2024-10-31 12:42:01619Durchsuche

Why am I getting a

MySQL-Fehler: Doppelter Eintrag für Primärschlüssel

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

Problem:

Beim Versuch, eine neue Zeile in die UFFICIO-INFORMAZIONI-Tabelle einzufügen, erhalten Sie eine Fehlermeldung, dass ein doppelter Eintrag für den Primärschlüsselwert „1“ vorhanden ist.

Erklärung:

Der Primärschlüssel ist eine eindeutige Einschränkung für eine Spalte oder einen Satz von Spalten in einer Tabelle. Es stellt sicher, dass jede Zeile eine eindeutige Kennung hat. In Ihrem Fall ist die ID-Spalte als Primärschlüssel definiert, was bedeutet, dass keine zwei Zeilen den gleichen Wert für die ID-Spalte haben können.

Ursache:

Der Fehler wird ausgelöst, weil Sie versuchen, eine neue Zeile mit einem ID-Wert einzufügen, der bereits in der Tabelle vorhanden ist. Dies verstößt gegen die Primärschlüsselbeschränkung, da es nicht zwei Zeilen mit demselben Primärschlüsselwert geben kann.

Lösung:

Es gibt zwei mögliche Lösungen für dieses Problem:

  1. Auto-Inkrementierung verwenden: Ändern Sie die ID-Spalte in eine automatisch inkrementierende Spalte. Dadurch kann die Datenbank automatisch eindeutige ID-Werte für jede neue Zeile generieren, sodass der ID-Wert nicht explizit angegeben werden muss.
  2. Geben Sie einen eindeutigen ID-Wert an: Wenn Sie dies nicht möchten Wenn Sie die automatische Inkrementierung verwenden, müssen Sie sicherstellen, dass der ID-Wert, den Sie für jede neue Zeile angeben, eindeutig ist. Sie können Ihre eigenen eindeutigen ID-Werte generieren oder eine UUID-Bibliothek (Universally Unique Identifier) ​​verwenden.

Beispiel:

Um die automatische Inkrementierung in MySQL zu verwenden, Ändern Sie die Anweisung zur Tabellenerstellung wie folgt:

<code class="sql">CREATE  TABLE IF NOT EXISTS `PROGETTO`.`UFFICIO-INFORMAZIONI` (
  `ID` INT(11) NOT NULL AUTO_INCREMENT,
  `viale` VARCHAR(45) NULL ,
   .....</code>

Dadurch wird eine ID-Spalte erstellt, die automatisch für jede neue in die Tabelle eingefügte Zeile erhöht wird. Sie können den ID-Wert dann beim Einfügen neuer Zeilen weglassen.

<code class="sql">INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`viale`, `num_civico`, ...)
VALUES ('Viale Cogel ', '120', ...)</code>

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in MySQL den Fehler „Doppelter Eintrag für Primärschlüssel“ (Code 1062)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn