SQL INSERT INTO SELECTInstructions
Avec SQL, vous pouvez copier des informations d'une table à une autre.
L'instruction INSERT INTO SELECT copie les données d'une table et les insère dans une table existante.
Instruction SQL INSERT INTO SELECT
L'instruction INSERT INTO SELECT copie les données d'une table et les insère dans une table existante. Les lignes existantes dans la table cible ne seront pas affectées.
Syntaxe de l'instruction SQL INSERT INTO SELECT
Nous pouvons copier toutes les colonnes d'une table et les insérer dans une autre table existante :
SELECT * FROM table1;
Ou nous pouvons copier uniquement les colonnes spécifiées et les insérer dans une autre table existante :
(column_name(s))
SELECT column_name(s)
FROM table1;
Base de données de démonstration
Dans ce tutoriel, nous utiliserons la base de données d'exemple EXAMPLE.
Voici les données sélectionnées dans la table « Websites » :
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | Example | 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 | +----+---------------+---------------------------+-------+---------+
Voici les données de l'application "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)
Exemples SQL INSERT INTO SELECT
Copiez les données de "apps" et insérez-les dans "Websites" :
Exemple
SELECT app_name, country FROM apps;
Copiez uniquement les données avec id=1 dans "Websites" :
Exemple
SELECT app_name, country FROM apps
WHERE id=1;