Stel dat u gegevens van de ene tabel naar de andere moet kopiëren. U kunt gegevens uit een tabel invoegen in een andere in MySQL.
De instructie INSERT INTO SELECT kopieert gegevens van de ene tabel naar de andere. Bestaande rijen in de doeltabel worden niet beïnvloed.
Syntaxis
Gegevens van de ene tabel in de andere invoegen voor alle kolommen,
INSERT INTO table2 SELECT * FROM table1;
Gegevens van de ene tabel in de andere invoegen voor specifieke kolommen,
INSERT INTO table2 column1, column2.. SELECT column1, column2, .. FROM table1;
Voorbeelden
Overweeg 2 voorbeeldtabellen, gebruikers en klanten
Users +------+--------------+-------------+ | id | user_name | location | +------+--------------+-------------+ | 1 | Jim | London | | 4 | Rocky | US | | 7 | Dan | Italy | | 3 | Bill | France | +------+--------------+-------------+
Customers +-------+------------------+--------+------------+ | id | customer_name | age | location | +-------+------------------+--------+------------+ | 11 | John | 23 | US | | 14 | Roger | 36 | London | | 17 | Will | 29 | Spain | | 13 | Bob | 34 | Japan | +-------+------------------+--------+------------+
Gegevens van de ene tabel in de andere invoegen voor een paar kolommen
mysql> INSERT INTO users (user_name, location) SELECT customer_name, location FROM customers; +------+--------------+-------------+ | id | user_name | location | +------+--------------+-------------+ | 1 | Jim | London | | 4 | Rocky | US | | 7 | Dan | Italy | | 3 | Bill | France | | 11 | John | US | | 14 | Roger | London | | 17 | Will | Spain | | 13 | Bob | Japan | +-------+-------------+-------------+
Voeg gegevens van de ene tabel in de andere in voor een paar kolommen, alleen die klanten die zich in 'VS' bevinden