Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie füge ich doppelte Zeilen in eine MySQL-Tabelle ein, ohne Spalten aufzulisten?

Mary-Kate Olsen
Freigeben: 2024-11-12 14:41:02
Original
942 Leute haben es durchsucht

How to Insert Duplicate Rows into a MySQL Table Without Listing Columns?

Kopieren von Zeilen in dieselbe MySQL-Tabelle ohne Spaltenauflistung

In MySQL kann der Fehler „Doppelter Eintrag ‚xxx‘ für Schlüssel 1“ auftreten " beim Versuch, eine Zeile in eine Tabelle einzufügen, die bereits denselben Primärschlüsselwert enthält. Dies liegt daran, dass MySQL eindeutige Werte für Primärschlüssel erzwingt.

Um dieses Problem zu beheben und gleichzeitig die manuelle Auflistung aller Spalten zu vermeiden, gibt es eine einfachere Methode:

  1. Erstellen Sie eine temporäre Tabelle mit denselben Schema als Originaltabelle:
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
Nach dem Login kopieren
  1. Aktualisieren Sie die Primärschlüsselspalte in der temporären Tabelle auf NULL:
UPDATE tmptable_1 SET primarykey = NULL;
Nach dem Login kopieren
  1. Fügen Sie die ein geänderte Zeile in die ursprüngliche Tabelle:
INSERT INTO table SELECT * FROM tmptable_1;
Nach dem Login kopieren
  1. Löschen Sie die temporäre Tabelle:
DROP TEMPORARY TABLE IF EXISTS tmptable_1;
Nach dem Login kopieren

Indem Sie den Primärschlüssel in der temporären Tabelle auf NULL setzen MySQL kann beim Einfügen der Zeile in die Haupttabelle automatisch einen neuen eindeutigen Wert generieren und so den Fehler bei der doppelten Eingabe vermeiden.

Für zusätzliche Sicherheit sollten Sie erwägen, am Ende der INSERT INTO-Zeile eine LIMIT 1-Klausel hinzuzufügen um sicherzustellen, dass nur eine einzige Zeile eingefügt wird.

Das obige ist der detaillierte Inhalt vonWie füge ich doppelte Zeilen in eine MySQL-Tabelle ein, ohne Spalten aufzulisten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage