从另一个 Vertica 数据库复制数据

COPY FROM VERTICA 将表数据从一个 Vertica 数据库导入到另一个。需要满足以下要求:

  • 您已经使用 CONNECT TO VERTICA 打开了与目标数据库的连接。

  • 源数据库最多只能低于目标数据库一个主要版本。

  • 目标数据库中的表必须存在。

  • 源表列和目标表列必须具有相同或兼容的数据类型。

导入过程

导入过程分为三步:

  1. 使用 CONNECT TO VERTICA 连接到源数据库。例如:

    => CONNECT TO VERTICA vmart USER dbadmin PASSWORD '' ON 'VertTest01',5433;
    CONNECT
    
  2. 使用 COPY FROM VERTICA 导入所需数据。例如,下面的语句将 customer_dimension 中的所有表数据导入到同名表中:

    
    => COPY customer_dimension FROM  VERTICA vmart.customer_dimension;
     Rows Loaded
    -------------
          500000
    (1 row)
    => DISCONNECT vmart;
    DISCONNECT
    
  3. DISCONNECT 当所有导入和导出操作完成后与源数据库断开连接:

    => DISCONNECT vmart;
    DISCONNECT
    

导入标识列

可按如下方式导入标识(和自动增量)列:

  • 如果源和目标表都具有标识列并且配置参数 CopyFromVerticaWithIdentity 设置为 true (1),则无需列出它们。

  • 如果源表有标识列,而目标表没有,则必须显式列出源列和目标列。

导入列后,标识列值不会自动增加。请使用 ALTER SEQUENCE 进行更新。

此语句的默认行为是通过直接在源表中指定标识(和自动增量)列来导入它们。要全局禁用此行为,请设置 CopyFromVerticaWithIdentity 配置参数。