我正在运行一个执行复杂查询的 psql 命令。查询不会产生任何结果,因此 psql 在输出中返回“(无行)”。
有没有办法让 psql 返回一个空字符串?
我已经尝试在所有变体中使用 --pset=tuples-only=on 和 --pset=footer=off 和 -q ,但它似乎不起作用。
页脚选项在 psql shell 提示符下有效,但在脚本中无效。
在 9.1.7 上试过,8.4、9.1 和 9.2 需要这个。
我正在运行一个执行复杂查询的 psql 命令。查询不会产生任何结果,因此 psql 在输出中返回“(无行)”。
有没有办法让 psql 返回一个空字符串?
我已经尝试在所有变体中使用 --pset=tuples-only=on 和 --pset=footer=off 和 -q ,但它似乎不起作用。
页脚选项在 psql shell 提示符下有效,但在脚本中无效。
在 9.1.7 上试过,8.4、9.1 和 9.2 需要这个。
可能已经足够好了:
$ psql -Axt -c 'select 1 where 1=0'
产生一个空字符串
编辑以下评论:上面的命令产生一个空行,因此包括和行尾。
要完全不产生任何内容,请删除该-x
选项。
并不是说它会对 shell 产生任何影响,如下所示:
与-x:
r=`psql -Atx -d test -c "select 1 where 1=0"` 回声 $r | od -c 0000000 \n 0000001
没有-x:
r=`psql -At -d test -c "select 1 where 1=0"` 回声 $r | od -c 0000000 \n 0000001
有没有办法让 psql 返回一个空字符串?
您可以简单地SELECT ''
在第一个查询之后追加。前任。:
psql -Atp5432 mydb -c "SELECT 1 WHERE FALSE; SELECT ''"
替换SELECT 1 WHERE FALSE
为不返回行的复杂查询。