SQL INSERT INTO SELECTSentencia
Con SQL, puede copiar información de una tabla a otra.
La sentencia INSERT INTO SELECT copia datos de una tabla y los inserta en una tabla existente.
Sentencia SQL INSERT INTO SELECT
La sentencia INSERT INTO SELECT copia datos de una tabla y los inserta en una tabla existente. Las filas existentes en la tabla de destino no se verán afectadas.
Sintaxis de SQL INSERT INTO SELECT
Podemos copiar todas las columnas de una tabla e insertarlas en otra tabla existente:
SELECT * FROM table1;
O podemos copiar solo las columnas especificadas e insertarlas en otra tabla existente:
(column_name(s))
SELECT column_name(s)
FROM table1;
Base de datos de demostración
En este tutorial, usaremos la base de datos de muestra EJEMPLO.
A continuación se muestran los datos de la tabla "Websites":
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | Ejemplo | http://www.example.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
A continuación se muestran los datos de la APP "apps":
mysql> SELECT * FROM apps; +----+------------+-------------------------+---------+ | id | app_name | url | country | +----+------------+-------------------------+---------+ | 1 | QQ APP | http://im.qq.com/ | CN | | 2 | 微博 APP | http://weibo.com/ | CN | | 3 | 淘宝 APP | https://www.taobao.com/ | CN | +----+------------+-------------------------+---------+ 3 rows in set (0.00 sec)
Ejemplo de SQL INSERT INTO SELECT
Copie los datos de "apps" e insértelos en "Websites":
Ejemplo
SELECT app_name, country FROM apps;
Copie solo los datos con id=1 en "Websites":
Ejemplo
SELECT app_name, country FROM apps
WHERE id=1;