Skip to content

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|