来自 csv 文件的 PostgreSQL 查询 [重复]
Posted
技术标签:
【中文标题】来自 csv 文件的 PostgreSQL 查询 [重复]【英文标题】:PostgreSQL query from csv file [duplicate] 【发布时间】:2018-07-10 16:48:27 【问题描述】:从 .csv 文件中查询最简单的方法是什么?
例如:我在emails.csv
文件中有一个包含 1000 个电子邮件地址的列表。
我想用emails.csv
文件中的电子邮件查询所有用户
例如:
SELECT *
FROM users
WHERE email IN (emails.csv)
有没有办法做这样的事情,或者我需要创建一个脚本。如果需要一些脚本,请您提供一些示例。
【问题讨论】:
你需要创建一个表并从csv复制它 如果文件位于数据库服务器上,您可以通过file_fdw 扩展名使用它 【参考方案1】:您需要从 csv 创建一个表并 copy 它,例如:
t=# create table csv(i int,email text);
CREATE TABLE
t=# copy csv(email) from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself, or an EOF signal.
>> q
>> w
>> \.
COPY 2
t=# select * from csv;
i | email
---+-------
| q
| w
(2 rows)
但在您的情况下,您是从文件中复制,而不是从标准输入,例如
copy csv(email) from '/path/to/file';
【讨论】:
hmm 我认为公司不想为此添加表格。无论如何感谢您的建议 @Fi3n1k:好吧,查询只能与表一起使用。除非您创建某种表格,否则您无法使用这些 CSV 值。如果需要,您可以将其放入临时表中以上是关于来自 csv 文件的 PostgreSQL 查询 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
带有两个 NULL 字符串的 PostgreSQL COPY CSV
Spark 使用 Data Frame 读取 CSV 文件并从 PostgreSQL DB 查询