如何在 postgres 前端指定选项卡 COPY
我想使用 psql "\copy" 命令将数据从制表符分隔的文件提取到 Postgres 中。我正在使用这个命令:
\copy cm_state from 'state.data' with delimiter '\t' null as ;
但我收到此警告(表实际上加载得很好):
WARNING: nonstandard use of escape in a string literal
LINE 1: COPY cm_state FROM STDIN DELIMITER '\t' NULL AS ';'
HINT: Use the escape string syntax for escapes, e.g., E'\r\n'.
如果 '\t' 不正确,如何指定选项卡?
I would like to use the psql "\copy" command to pull data from a tab-delimited file into Postgres. I'm using this command:
\copy cm_state from 'state.data' with delimiter '\t' null as ;
But I'm getting this warning (the table actually loads fine):
WARNING: nonstandard use of escape in a string literal
LINE 1: COPY cm_state FROM STDIN DELIMITER '\t' NULL AS ';'
HINT: Use the escape string syntax for escapes, e.g., E'\r\n'.
How do I specify a tab if '\t' is not correct?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用
E'\t'
告诉 postgresql 其中可能存在转义字符:Use
E'\t'
to tell postgresql there may be escaped characters in there:您可以执行此操作
使用 (format 'text') 从标准输入复制 cm_state
you can do this
copy cm_state from stdin with (format 'text')
谢谢这个 E'\t' 格式。转义字符在导入制表符分隔 (TSV) 数据文件时有效,并且标题不仅在 CSV 中有效。
这样我就成功导入了 TSV,但仅使用 DELIMITER 选项,如下所示在此 psql 中(包含排除的标头)
Thx this E'\t' formatting. Escaping character works when importing tab separated (TSV) data files, and headers not only in CSV.
This way I have successful imported a TSV, but only with DELIMITER option as follows in this psql (contained excluded header)