【发布时间】:2020-07-31 01:19:51
【问题描述】:
我是 PostgreSQL 的新手。我正在尝试将 JSON 文件导入 PostgreSQL 表。我创建了一个空表:
covid19=# CREATE TABLE temp_cov(
covid19(# data jsonb
covid19(# );
并尝试使用命令行中的以下命令从该表中的 JSON 复制我的数据:
cat output.json | psql -h localhost -p 5432 covid19 -U postgres -c "COPY temp_cov (data) FROM STDIN;"
输出只是“COPY 1”,当我在 psql 中打开我的表时
SELECT * FROM temp_cov;
但是这个命令没有结束并且有这个输出。
很遗憾,我找不到答案或类似的问题解决方案。提前感谢您的建议。
另外,我的 json 文件已经被修改为“不漂亮”的形式,它有超过 11k 行。
【问题讨论】:
-
你的 json 文件是否以换行符结尾?
-
看看dba.stackexchange.com/questions/8172/… 和dba.stackexchange.com/questions/1742/…。您可能可以为 JSON 做类似的事情。您还可以将
\lo_import与psql一起使用。 -
@Bergi 不,我的 json 文件没有以换行符结尾。它也不应该,不是吗?感谢您的帮助!我已经尝试了 1000 种方法,并且会查看您发送的链接!
-
是的,你是对的,它不需要换行符,只是文件结尾。从this answer 来看,您的方法应该有效,并且输出
COPY 1表明插入了一行。为什么之后会空出来我不知道。
标签: json postgresql psql