postgresql 中的转义分隔符

art*_*hur 5 postgresql import copy

我正在尝试将数据导入到 postgres 中。数据字段以逗号分隔,字符串可能包含逗号,在这种情况下,这些字段将被转义:

数据结构:

create table v (a varchar);
Run Code Online (Sandbox Code Playgroud)

数据文件:

bus
'Gat\,\\e\'way_MQB'
Run Code Online (Sandbox Code Playgroud)

导入命令(在Linux下从bash运行)

cat data.csv | psql -d database -c "copy v (a) from stdin with delimiter ',' escape '\\' CSV header"
Run Code Online (Sandbox Code Playgroud)

错误:

ERROR:  extra data after last expected column
Run Code Online (Sandbox Code Playgroud)

我已经和谷歌对抗这个问题好几个小时了,不明白我做错了什么?

hbn*_*hbn 6

尝试:

cat data.csv | psql -d database -c "copy v (a) from stdin with delimiter ',' escape '\' quote '''' CSV header"
Run Code Online (Sandbox Code Playgroud)

指定转义字符时不需要对其进行转义。QUOTE 默认为双引号,因此您需要传递它。