Heim >Datenbank >MySQL-Tutorial >Wie können alle Spalten effizient beibehalten werden, wenn MySQLs INSERT INTO...SELECT verwendet wird?

Wie können alle Spalten effizient beibehalten werden, wenn MySQLs INSERT INTO...SELECT verwendet wird?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-04 13:10:10480Durchsuche

How to Efficiently Preserve All Columns When Using MySQL's INSERT INTO...SELECT?

Spaltendaten mit effizientem INSERT INTO...SELECT beibehalten

Beim Übertragen von Daten von einer MySQL-Tabelle in eine andere unter Beibehaltung aller Spalten a Es entsteht eine gemeinsame Herausforderung. Mit dem Format INSERT INTO this_table_archive (*) VALUES (SELECT * FROM this_table WHERE enter_date < '2011-01-01 00:00:00'); führt möglicherweise nicht zum gewünschten Ergebnis.

Die korrekte Syntax, wie im MySQL-Handbuch beschrieben, lautet wie folgt:

INSERT INTO this_table_archive (col1, col2, ..., coln) 
SELECT col1, col2, ..., coln
FROM this_table
WHERE entry_date < '2011-01-01 00:00:00'; 

Dieses überarbeitete Format benennt jede Spalte in der Zieltabelle explizit und stellt so sicher dass alle Daten ordnungsgemäß kopiert werden.

Wenn außerdem die ID-Spalte als automatische Inkrementierung konfiguriert ist und beide Tabellen Daten enthalten, kann es von Vorteil sein, diese aus der Spalte auszuschließen Liste. Dies verhindert potenzielle Konflikte durch das Einfügen doppelter IDs. Wenn die Zieltabelle jedoch leer ist, ist diese Auslassung nicht erforderlich.

Das obige ist der detaillierte Inhalt vonWie können alle Spalten effizient beibehalten werden, wenn MySQLs INSERT INTO...SELECT verwendet wird?. 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