将命令行参数传递给 sql (Postgres)
Pass command line args to sql (Postgres)
如何使用 psql
(Postgres) 将命令行参数传递给 sql 文件 运行?
即
psql mydatabase < mysqlfile.sql arg1 arg2 arg3...
这可能吗?
在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
如何使用 psql
(Postgres) 将命令行参数传递给 sql 文件 运行?
即
psql mydatabase < mysqlfile.sql arg1 arg2 arg3...
这可能吗?
在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