从命令行使用 psql 时的单引号

single quotes when using psql from command line

我正在尝试 运行 从命令行获取这个简单的 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' 但没有成功..

谢谢

这确实是一个 shell 问题,例如 here 得到了回答。

针对您的问题进行了改编:

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

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

echo "7"
# '