PostgreSQL - 当行以定界符结尾时如何使用复制命令(导入文本文件)

PostgreSQL - how to use copy command (importing text file) when the line ends with delimiter

我正在尝试将几个大文件导入 PostgreSQL 数据库,这些文件包含以下格式的数据,值由分隔符 | 分隔。但是当您使用复制语句导入时出现错误

ERROR: extra data after last expected column

经过一些测试,我发现该行的最后一个字符是问题的原因,每一行都以分隔符结尾。我找到了一个解决方法,即在换行符之前替换每个字符。我正在寻找 COPY 语句,它可以很好地忽略最后一个字符

8712678|MC|AMC355911||||355911|||AZ|AZ|2002|484|0|0|||C|CLOSED|CLOSED|239|DECLARED NULL & VOID|2002-01-31 00:00:00|2006-07-28 12:11:55|384101|LODE CLAIM|||2005-10-19 00:00:00|STELLAR METALS SM #2|01 05-10-1872;017STAT0091;30USC26,28,34|AMC355910|200103806|2001-09-07 00:00:00||||38||Y||||2011-07-19 12:55:52|

没有这样的COPY。您需要使用解决方法,或者您已经使用过的方法,例如 sed 's/|$//g',或者只是 alter table blah add column dummy 到 table 的末尾,因此 COPY 会用空值而不是填充它错误