首页 > 解决方案 > 从命令行使用 psql 时的单引号

问题描述

我正在尝试从命令行运行这个简单的 psql 命令并且获取列 ns 不存在。我敢肯定我错过了一些非常愚蠢的事情。

psql -U myuser -p 6432 -h myhost -d mydb-c 'update schema.table set column ='NS' where id <> 123;'

错误:列“ns”不存在

我尝试将 E'NS' 转义为 'NS' 但没有用..

谢谢

标签: postgresqlpsqlsingle-quotes

解决方案


这确实是一个shell问题,例如在此处回答。

适合您的问题:

psql -U myuser -p 6432 -h myhost -d mydb-c 'update schema.table set column ='"'"'NS'"'"' where id <> 123;'

注意:有时,当您将多个级别的参数传递给嵌套的 shell 调用时,使用八进制形式的单引号也可能是有益的:

echo "\047"
# '

推荐阅读