将命令行参数传递给sql(Postgres)

时间:2018-04-30 15:25:27

标签: postgresql psql args

如何将命令行参数传递给使用psql mydatabase < mysqlfile.sql arg1 arg2 arg3...(Postgres)运行的sql文件?

obj4 <-gbutton("+",container=group2)

这可能吗?

1 个答案:

答案 0 :(得分:4)

在psql中使用variable interpolation feature

如果在命令行中指定-v variable1=value1--set variable1=value1参数,则sql文件中的:variable1将替换为相应的文本值。

注意:如果需要引号,空格等,请使用标准SQL引用的字符串。

示例:

echo "SELECT :arg1 FROM :arg2 LIMIT 10;" > script.sql
psql mydatabase -v arg1=relname -v arg2=pg_class < script.sql  
psql mydatabase -v arg1="'some string' as label" -v arg2=pg_namespace < script.sql