问题描述
我正在尝试从命令行运行这个简单的 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 "\047"
# '