Postgresql 如何使用COPY命令从csv文件导入jsonb列?
我正在尝试将以下csv文件导入YugaByte DB YSQL。请注意,每行中的第二个条目是一个Postgresql 如何使用COPY命令从csv文件导入jsonb列?,postgresql,distributed-database,yugabyte-db,Postgresql,Distributed Database,Yugabyte Db,我正在尝试将以下csv文件导入YugaByte DB YSQL。请注意,每行中的第二个条目是一个JSON对象 "15-06-2018","{\"file_name\": \"myfile1\", \"remote_ip\": \"X.X.X.X\"}" "15-06-2018","{\"file_name\": \"myfile2\", \"remote_ip\": \"Y.Y.Y.Y\"}" 我的表架构是: postgres=# create table downloads_raw (req
JSON
对象
"15-06-2018","{\"file_name\": \"myfile1\", \"remote_ip\": \"X.X.X.X\"}"
"15-06-2018","{\"file_name\": \"myfile2\", \"remote_ip\": \"Y.Y.Y.Y\"}"
我的表架构是:
postgres=# create table downloads_raw (request_date text, payload jsonb);
我希望导入文件中的JSON片段成为JSONB
值
我试着做了以下几点:
postgres=# COPY downloads_raw FROM 'data.csv';
遇到以下错误:
ERROR: 22P04: missing data for column "payload"
CONTEXT: COPY downloads_raw, line 1: ""15-06-2018","{\"file_name\": \"myfile1\", \"remote_ip\": \"X.X.X.X\"}""
LOCATION: NextCopyFrom, copy.c:3443
Time: 2.439 ms
您需要指定csv格式和转义“\”。此外,格式和转义选项需要用括号括起来。这应该起作用:
COPY使用(csv格式,转义“\”)从“data.csv”下载原始数据代码>
可在此处找到复制命令支持的选项列表:
因为它说输入中没有两个值,所以它可能采用了不同的分隔符,请尝试告诉它是逗号分隔的?或csv格式为csv的一般,尝试了csv格式的,但语法无效:#复制下载\u原始的“data.csv”格式为csv;错误:42601:语法错误位于或接近“FORMAT”
让我来看看如何指定分隔符。