如何将整个文件作为一个字符串导入 PostgreSQL?
create table text_files (
id serial primary key,
file_content text
);
我尝试过 \copy text_files (file_content) from/home/test.txt
,但这会在文本文件中每行创建一行。
我有数百个小文本文件,我想使用一些 bash 循环,其中包含 \copy
。
更新:如果 bash 和 \copy
不是完成此任务的最佳工具集,我可以使用其他编程语言 - 也许 Python 可以提供一些东西。
最佳答案
如果您确实必须在 bash 中执行此操作,则需要手动执行:
psql regress -c "insert into text_files(file_content) values ('$(sed "s/'/''/g" test.txt)');"
但它会有点脆弱。我个人建议使用更复杂的脚本语言。它还会将整个文件加载到内存中至少几次。
psql
有 \lo_import
,但它将文件导入到 pg_largeobject
,而不是 text
字段。
关于python - 将整个文件作为一个字符串导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21514971/