sql >> Base de Datos >  >> RDS >> Mysql

Insertar datos de una tabla a otra en MySQL

Digamos que necesita copiar datos de una tabla a otra. Puede insertar datos de una tabla en otra en MySQL.

La declaración INSERT INTO SELECT copia datos de una tabla a otra. Las filas existentes en la tabla de destino no se ven afectadas.

Sintaxis
Insertar datos de una tabla a otra para todas las columnas,

INSERT INTO table2
SELECT * FROM table1;

Insertar datos de una tabla en otra para columnas específicas,

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

Ejemplos
Considere 2 tablas de muestra, Usuarios y Clientes

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

Insertar datos de una tabla en otra para algunas columnas

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

Inserte datos de una tabla en otra para algunas columnas, solo aquellos clientes ubicados en 'EE. UU.'