【发布时间】:2020-06-27 15:26:08
【问题描述】:
我已经尝试使用 COPY 命令从 CSV 文件填充 Postgres 12 数据库几个小时。有问题的表有一个 hstore 字段,其中一个键值对在值中有一个双引号 "。
Postgres 数据库是这样创建的
CREATE TABLE test (
title VARCHAR(20),
tags hstore
);
CSV 文件使用tabs 作为分隔符,看起来像这样
My Title | name=>"""Paul "Butch" Newman""", job=>actor
名称值需要双引号和转义,因为它包含空格。
|代表一个制表符。
我的导入语句如下所示:
COPY test (title, tags)
FROM '/var/lib/postgresql/data/test.csv'
DELIMITER E'\t' CSV ENCODING 'UTF8';
数据库按预期填充,但是当我用
查询它时SELECT tags->'name' as name FROM test;
pgAdmin 4 返回
Paul Butch Newman
而不是
Paul "Butch" Newman
我的问题是如何将双引号放入实际的 hstore 值中?
我找到了很多关于导入文本字段的双引号的答案。但是这里导入的是一个hstore 字段,并且该值需要在此处使用双引号,因为它包含空格。
谢谢!
【问题讨论】:
标签: sql postgresql escaping postgis hstore