INSERT INTO SELECT
将一个查询的结果插入到一个表中。
语法格式
sql
insert_select_stmt::=
INSERT INTO targ_table[targ_col_list] selectstmt
参数说明
targ_table
:目标表。targ_col_list
:目标列,多个列之间用逗号分隔。selectstmt
:查询语句,详情参考查询章节。
说明:
targ_col_list
字段数必须和selectstmt
中的字段数一致。
示例
sql
SQL> CREATE TABLE copy_tab1(col1 INT,col2 VARCHAR);
SQL> INSERT INTO copy_tab1 VALUES(1,'VALUE1')(2,'VALUE2');
SQL> CREATE TABLE copy_tab2(col1 INT,col2 VARCHAR);
SQL> CREATE TABLE copy_tab3(col1 INT,col2 VARCHAR);
-- 通过INSERT INTO ..SELECT 复制表copy_tab1数据到copy_tab2;
SQL> INSERT INTO copy_tab2 SELECT * FROM copy_tab1;
-- 通过INSERT INTO ..SELECT 复制表copy_tab1数据到copy_tab3;
SQL> INSERT INTO copy_tab3(col1,col2) SELECT * FROM copy_tab1;
SQL> SELECT * FROM copy_tab2;
COL1 | COL2 |
------------------------------------------------------------------------------
1 | VALUE1|
2 | VALUE2|
SQL> SELECT * FROM copy_tab3;
COL1 | COL2 |
------------------------------------------------------------------------------
1 | VALUE1|
2 | VALUE2|