如何将命令行参数传递给使用 psql
运行的 sql 文件(Postgres)?
即
psql mydatabase < mysqlfile.sql arg1 arg2 arg3...
这可能吗?
最佳答案
使用variable interpolation feature在 psql 中。
如果在命令行指定-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
关于postgresql - 将命令行参数传递给 sql (Postgres),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50103585/