【问题标题】:Pass command line args to sql (Postgres)将命令行参数传递给 sql (Postgres)
【发布时间】:2018-05-01 01:14:30
【问题描述】:

如何将命令行参数传递给使用psql (Postgres) 运行的 sql 文件?

psql mydatabase < mysqlfile.sql arg1 arg2 arg3...

这可能吗?

【问题讨论】:

    标签: postgresql psql args


    【解决方案1】:

    在 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  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-09
      • 2017-10-22
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多