Mysql
 sql >> Database >  >> RDS >> Mysql

Inserisci i dati da una tabella all'altra in MySQL

Diciamo che devi copiare i dati da una tabella all'altra. Puoi inserire i dati dalla tabella in un'altra in MySQL.

L'istruzione INSERT INTO SELECT copia i dati da una tabella all'altra. Le righe esistenti nella tabella di destinazione non sono interessate.

Sintassi
Inserisci i dati da una tabella all'altra per tutte le colonne,

INSERT INTO table2
SELECT * FROM table1;

Inserisci i dati da una tabella all'altra per colonne specifiche,

INSERT INTO table2
column1, column2..
SELECT column1, column2, ..
FROM table1;

Esempi
Considera 2 tabelle di esempio, Utenti e Clienti

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   |
+-------+------------------+--------+------------+

Inserisci i dati da una tabella all'altra per alcune colonne

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   |
+-------+-------------+-------------+

Inserisci i dati da una tabella all'altra per alcune colonne, solo quei clienti che si trovano negli "Stati Uniti"