PostgreSQL COPY csv 包括引号

标签 postgresql csv import copy

这是一个非常简单的问题,我正在使用 psql 终端命令 COPY,如下所示

COPY tbname FROM '/tmp/file.csv'
delimiter '|' csv;

但是这个 file.csv 包含如下数据

random|stuff|32"

还有

random|other "stuff"|15

我尝试按照 Postgres 站点的建议使用双引号来转义引号

random|stuff|32""
random|other ""stuff""|15

这似乎完全删除了我不想要的引号。 有没有办法让导入仅将这些引号视为常规字符,以便它们像在 csv 文件中一样出现在数据库中?

最佳答案

根据documentation ,默认的引号是 ",所以你需要提供一个不同符号的 QUOTE 参数。引号必须是一个单字节字符。

COPY tbname FROM '/tmp/file.csv'
delimiter '|' QUOTE '}' csv; -- use a symbol you know does not appear in your file.

关于PostgreSQL COPY csv 包括引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28629475/

相关文章:

sql - 如何在 Sequelize 中为带有响应数组的表对象设置模型

postgresql - PostgreSQL 中 Bit 和 Boolean 数据类型的区别

SQL 为包含所有给定值的多列创建语句

python - 在一个巨大的字符串文件中查找一个字符串

mysql - 如何从csv文件中获取数据并用mysql保存到grails中?

postgresql : read GIN index content

azure - 使用azure数据工厂根据空值过滤csv文件

sql-server - 使用 where 子句将 txt 文件导入 SQL Server

mysql - 将恢复的 MySQL 表导入新的 MySQL 数据库

mysql - 我的第一个 Sqoop 工作出错。