【发布时间】:2018-05-01 01:14:30
【问题描述】:
如何将命令行参数传递给使用psql (Postgres) 运行的 sql 文件?
即
psql mydatabase < mysqlfile.sql arg1 arg2 arg3...
这可能吗?
【问题讨论】:
标签: postgresql psql args
如何将命令行参数传递给使用psql (Postgres) 运行的 sql 文件?
即
psql mydatabase < mysqlfile.sql arg1 arg2 arg3...
这可能吗?
【问题讨论】:
标签: postgresql psql args
在 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
【讨论】: