使用psql连接URI执行SELECT语句时遇参数被忽略警告问题
解决psql结合Connection URI执行查询时被忽略的问题
问题原因
psql的命令行参数解析规则中,直接作为非选项参数传入的Connection URI会被识别为数据库名参数,后续的-c会被错误当作用户名参数,导致后面的查询语句被判定为额外参数而忽略。
解决方案
有两种正确的命令格式可以解决这个问题:
将
-c查询选项放在Connection URI之前:psql -c "select current_date;" postgresql://postgres:admin@localhost:5432/newDB使用
-d(或完整的--dbname)选项明确指定连接URI,再搭配-c参数:psql -d postgresql://postgres:admin@localhost:5432/newDB -c "select current_date;"
补充说明
你之前使用createdb成功的原因是,--maintenance-db是createdb专门用于指定维护数据库的选项,参数格式完全符合该命令的解析规则,因此不会出现参数识别错误的问题。
内容的提问来源于stack exchange,提问作者Gabin.R
相关产品推荐
相关产品推荐

