Mysql
 sql >> Base de données >  >> RDS >> Mysql

Insérer des données d'une table dans une autre dans MySQL

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 »