我想将数据上传到雪花表。雪花表的主键字段为AUTOINCREMENT。
当我尝试将数据上传到没有主键字段的雪花时,我收到以下错误消息:
COPY失败,并出现以下错误:文件(2)中的列数不正确 与对应表(3)匹配,使用文件格式选项 error_on_column_count_mismatch = false可以忽略此错误
有人知道我是否可以将数据批量加载到具有AUTOINCREMENT主键的表中吗?
小泽
答案 0 :(得分:3)
文档具有以下示例,表明可以完成此操作: https://docs.snowflake.net/manuals/user-guide/data-load-transform.html#include-autoincrement-identity-columns-in-loaded-data
-- Omit the sequence column in the COPY statement
copy into mytable (col2, col3)
from (
select $1, $2
from @~/myfile.csv.gz t
)
;
能否请您尝试使用这种语法,看看它是否对您有用?
答案 1 :(得分:1)
您可以使用文件格式查询登台文件以加载数据。我创建了如下的示例表。第一列设置自动递增:
-- Create the target table
create or replace table Employee (
empidnumber autoincrement start 1 increment 1,
name varchar,
salary varchar
);
我已将一个示例文件上载到雪花内部阶段,以将数据加载到表中,并使用以下查询了阶段文件,然后执行了以下复制cmd:
copy into mytable (name, salary )from (select $1, $2 from @test/test.csv.gz );
它会以递增的值加载表。