Heim >Datenbank >MySQL-Tutorial >Wie füge ich in MySQL mit INSERT INTO...SELECT alle Spalten korrekt aus einer Tabelle in eine andere ein?

Wie füge ich in MySQL mit INSERT INTO...SELECT alle Spalten korrekt aus einer Tabelle in eine andere ein?

DDD
DDDOriginal
2024-12-07 19:57:13489Durchsuche

How to Correctly Insert All Columns from One Table to Another in MySQL Using INSERT INTO...SELECT?

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!

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