将纯文件插入/复制到 postgres 表中的好方法是什么(最好使用psql命令行)?
就我而言,这些文件是来自 Maildir 档案的一堆电子邮件,所以我尝试使用COPY:
psql -c "COPY emails (data) FROM '/tmp/emailfile' WITH (FORMAT text);" emails
Run Code Online (Sandbox Code Playgroud)
我将在 for 循环 shell 脚本中使用它 ( for file in $(ls dir); do psql ...; done)。
但是,我无法找到文件中不可能存在的良好“分隔符”,并且我收到以下错误:ERROR: extra data after last expected column。
因此,我考虑使用数据库中的COPY ... FORMAT binary版本和字段(然后将列转换到数据库内部),但这需要文件头和预告片,我没有简单的方法来即时构建。BYTEATEXT
有没有一种简单的方法可以从命令行执行此操作,或者我需要为此编写一个 python 脚本吗?