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:
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;
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!