我知道这不是一个不常见的问题,我一直在研究其他问题。 但读完之后我还是没能解决我的问题。
我正在使用 PostgreSQL,想要填充我用生成的表文件创建的 TPC-H 表。我使用以下命令成功填充了除 partsupp 之外的所有表格。
postgres=# COPY tpch1g.partsupp FROM '/home/user/TPC-H_1gb/partsupp.tbl' DELIMITER '|' CSV;
然后我收到这条消息:
错误:最后一个预期列之后有额外数据上下文:复制partsupp, 第 1 行:“1|2|3325|771.64|,甚至经纬仪。常规,最终 经纬仪在小心翼翼地等待的狐狸之后吃东西......”
据我了解,此消息告诉我数据中的列数与 partsupp 表的预期列数不匹配。
partsupp 表有 5 列:
\d tpch1g.partsupp
Table "tpch1g.partsupp"
Column | Type | Collation | Nullable | Default
---------------+------------------------+-----------+----------+---------
ps_partkey | integer | | not null |
ps_suppkey | integer | | not null |
ps_availqty | integer | | |
ps_supplycost | numeric(15,2) | | |
ps_comment | character varying(199) | | |
Indexes:
"partsupp_pkey" PRIMARY KEY, btree (ps_partkey, ps_suppkey)
我的 partsupp.tbl 中的一行看起来像这样:
1|2|3325|771.64|,甚至是经纬仪。常规的、最后的经纬仪吃 在小心翼翼地等待狐狸之后。疯狂定期存款睡觉 狡猾地。谨慎大胆的领域高于具有讽刺意味的依赖性讨价还价 小心|
它具有相同数量的列,所以我不明白出了什么问题。我的复制命令完美地适用于其他表。我是否做错或忽略了什么?
partsupp.tbl 中的示例以分隔符结尾,因此存在额外的数据列与表结构不匹配。