TL;DR – SQL INSERT INTO SELECT 语句可以将部分或全部列从一个表复制到另一个表中。现有表行不受影响。
内容
将所有列复制到另一个表
例复制
INSERT INTO mytable2 SELECT * FROM mytable1 WHERE condition;
将几列复制到另一个表
例复制
INSERT INTO mytable2 (column1, column2, column3, ...)SELECT column1, column2, column3, ...FROM mytable1WHERE condition;
使用演示数据库的示例
“开发人员”表
| 编号 | 名字 | 城市 | 国家 |
|---|---|---|---|
| 1 | 汤姆·库尔库蒂斯 | 纽约 | 美国 |
| 2 | 安娜·费尔南德斯 | 伦敦 | 英国 |
| 3 | 安东尼奥·靛蓝 | 巴黎 | 法国 |
| 4 | 阿拉夫·凯林(Aarav Kaelin) | 德里 | 印度 |
| 5 | 安德鲁·图莫塔 | 迈阿密 | 美国 |
“客户”表
| 编号 | 名字 | 联系 | 地址 | 城市 | Postal_Code | 国家 |
|---|---|---|---|---|---|---|
| 1 | 本·乔普林克斯 | 本·乔普林克 | 奥比斯雷街 51 号 | 罗马 | 11207 | 意大利 |
| 2 | 唐纳德·里奇 | 唐纳德·里查里奥 | 阿夫达。de la Confgfstitución 4122 | 塔林 | 17021 | 爱沙尼亚 |
| 3 | 莉莉·斯米尔金斯 | 莉莉·斯米尔金 | 马塔德斯德罗斯 2312 | 埃圭罗 | 14023 | 墨西哥 |
| 4 | 布兰迪尼纳 | 汤姆·希钦斯 | 110哈内戈弗广场 | 伦敦 | WB2 2DP系列 | 英国 |
| 5 | 卡里莫斯 | 克里斯蒂安诺·克里斯 | Berguvsesvägen 9 | 吕勒奥 | S-968 43型 | 瑞典 |
将几列从“客户”复制到“开发人员”
例复制
INSERT INTO Developers (Name, Country)SELECT Name, Country FROM Customers;
将 Customers 表复制到 Developers 表中
例复制
INSERT INTO Developers (Name, City, Country)SELECT Name, City, Country FROM Customers;
仅将 UK Customers 复制到 Developers 表中
例复制
INSERT INTO Developers (Name, City, Country)SELECT Name, City, Country FROM CustomersWHERE Country='UK';
陕公网安备 61012502000223号
评论一下吧