我正在尝试执行以下操作:
UPDATE bodycontent set body=CONTENT_FROM_FILE where contentid=12943363;
我根据this question的最高投票答案尝试了以下内容。
\set contentfill `cat Foo.txt`
UPDATE bodycontent set body=:'contentfill' where contentid=12943363;
这会导致以下错误。
ERROR: syntax error at or near ":"
LINE 1: UPDATE bodycontent set body=:'contentfill' where contentid=1...
在psql
命令行上有没有一种干净,简单而有效的方法来实现这一目的?
以下是psql --version
的输出:
psql (PostgreSQL) 8.4.17
答案 0 :(得分:0)
经过多次搜索,我发现了this answer,它没有直接讨论阅读文件的问题,而是给了我必要的成分,使我的古代Postgres
能够使用。
\set contentFill `cat Foo.txt`
\set quoted_contentFill '\'' :contentFill '\''
UPDATE bodycontent SET body=:quoted_contentFill WHERE contentid=12943363;
当然,如果Foo.txt
内有未转义的引号,这将失败,但我可以轻松预处理以确保没有。