Alle Spalten mit INSERT INTO...SELECT in die Zieltabelle einfügen
Sie haben Schwierigkeiten, Daten aus dieser_Tabelle in dieses_Tabellenarchiv zu kopieren INSERT INTO-Anweisung mit Platzhalter (*)-Auswahl. Lassen Sie uns das Problem beheben und eine funktionierende Lösung finden.
Der Fehler liegt in der Verwendung von (*), um alle Spalten auszuwählen, ohne die Spaltennamen anzugeben. Für die richtige Syntax, wie im MySQL-Handbuch beschrieben, müssen Sie die Spaltennamen explizit auflisten.
Hier ist der richtige Code:
INSERT INTO this_table_archive (col1, col2, ..., coln) SELECT col1, col2, ..., coln FROM this_table WHERE entry_date < '2011-01-01 00:00:00';
Ersetzen Sie col1, col2, ..., coln mit den tatsächlichen Spaltennamen in Ihrer Tabelle.
Bezüglich der ID-Spalte, wenn beide Tabellen eine automatisch inkrementierende ID haben und in einer der Tabellen bereits Daten vorhanden sind Für die Tabelle können Sie erwägen, id aus der Spaltenliste in Ihrer Abfrage wegzulassen, um potenzielle Konflikte mit doppelten Schlüsseln zu vermeiden.
Bei einer leeren Zieltabelle verursacht dieses Auslassen keine Probleme. Bei Tabellen mit Daten stellt das Ausschließen der ID-Spalte jedoch sicher, dass neue, eindeutige IDs für die kopierten Zeilen generiert werden.
Das obige ist der detaillierte Inhalt vonWie füge ich in MySQL mit INSERT INTO...SELECT alle Spalten korrekt aus einer Tabelle in eine andere ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!