Disons que vous devez copier des données d'une table dans une autre. Vous pouvez insérer des données d'une table dans une autre dans MySQL.
L'instruction INSERT INTO SELECT copie les données d'une table à une autre. Les lignes existantes dans la table cible ne sont pas affectées.
Syntaxe
Insérer des données d'une table dans une autre pour toutes les colonnes,
INSERT INTO table2 SELECT * FROM table1;
Insérer des données d'une table dans une autre pour des colonnes spécifiques,
INSERT INTO table2 column1, column2.. SELECT column1, column2, .. FROM table1;
Exemples
Prenons 2 exemples de tableaux, Utilisateurs et Clients
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 | +-------+------------------+--------+------------+
Insérer des données d'une table dans une autre pour quelques colonnes
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 | +-------+-------------+-------------+
Insérer des données d'une table dans une autre pour quelques colonnes, uniquement les clients situés aux « États-Unis »