INSERT INTO SELECT 语句
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。
语法:
可以从一个表中复制所有的列插入到另一个已存在的表中:
INSERT INTO table2
SELECT * FROM table1;
或者可以只复制希望的列插入到另一个已存在的表中:
INSERT INTO table2 (column_name(s))
SELECT column_name(s) FROM table1;
举例:
复制 “apps” 中的数据插入到 “Websites” 中:
```handlebars
INSERT INTO Websites (name, country)
SELECT app_name, country FROM apps;
注:select into from 和 insert into select 都是用来复制表
两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建;insert into select from 要求目标表存在。
1. 复制表结构及其数据:
```handlebars
create table table_name_new
as select * from table_name_old
- 只复制表结构:
create table table_name_new
as select * from table_name_old where 1=2;
或者:
create table table_name_new
like table_name_old
- 只复制表数据:
如果两个表结构一样:
insert into table_name_new
select * from table_name_old
如果两个表结构不一样:
insert into table_name_new(column1,column2...)
select column1,column2... from table_name_old