postgresql - 从命令行使用 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' 但没有用..
谢谢
解决方案
这确实是一个shell
问题,例如在此处回答。
适合您的问题:
psql -U myuser -p 6432 -h myhost -d mydb-c 'update schema.table set column ='"'"'NS'"'"' where id <> 123;'
注意:有时,当您将多个级别的参数传递给嵌套的 shell 调用时,使用八进制形式的单引号也可能是有益的:
echo "\047"
# '
推荐阅读
- reactjs - 反应导航扩展标题
- .net - 我们能否在 .NET Core 3 中使用 Lamar 解决使用其他接口实现的接口实现?
- mysql - 如何在 mysql 中删除而不删除主要和外部约束
- algorithm - 转换循环以进行并行化
- r - 如何测试\是否在字符串中?
- java - 如何在 Spring Cloud Gateway 中添加特定于路由的自定义过滤器
- reactjs - antd 表通过 react-csv 导出到 csv 使表变慢
- excel - 将存在的文件与 Excel 工作表进行比较
- visual-studio - 只有在工具支持的情况下,我如何有条件地构建 .Net Core 3.0?
- swift - 获取 Anyhashable 类型的数据?