Skip to content

IMPORT...SELECT

将数据从一个查询结果导入到现有的表中。

语法格式

sql
ImportStmt::=
    IMPORT [APPEND | REPLACE] TABLE name_space [( columnList )] FROM selectstmt

参数说明

  • [APPEND | REPLACE]:可选。
    • APPEND: 默认值,表示将selectstmt的结果追加到目标表中,而不影响已有数据。
    • REPLACE: 表示在导入新数据之前,先删除目标表中的所有现有数据。
  • name_space:表名,可带模式名也可忽略模式名。
  • columnList:列名,可选值,缺省时列名为查询中的列名。
  • selectstmt:查询语句,详情参考查询章节。

说明:

  • columnList字段数必须和selectstmt中的字段数保持一致。
  • IMPORT语法复制数据不支持目标表出现在查询子句中。

示例

  • 示例1
    APPEND模式

    sql
    SQL> CREATE TABLE tb_ap(id INT,name VARCHAR(20));
    
    SQL> INSERT INTO tb_ap VALUES(1,'one')(2,'two');
    
    SQL> CREATE TABLE tb_ap1(id INT,name VARCHAR(20));
    
    SQL> INSERT INTO tb_ap1 VALUES(66,'abc');
    
    SQL> IMPORT APPEND TABLE tb_ap1 FROM SELECT * FROM tb_ap;
    
    SQL> SELECT * FROM tb_ap1;
    
    ID | NAME | 
    ------------------------------------------------------------------------------
    66 | abc|
    1 | one|
    2 | two|
  • 示例2
    REPLACE模式

    sql
    SQL> IMPORT REPLACE TABLE tb_ap1 FROM SELECT * FROM tb_ap;
    
    SQL> SELECT * FROM tb_ap1;
    
    ID | NAME | 
    ------------------------------------------------------------------------------
    1 | one|
    2 | two|