如何在 postgresql 脚本中使用 bash 调用的参数?
How to use a argument from bash call in postgresql script?
我有以下 bash 脚本调用。
psql -U postgres postgres < ../dump_script.sql -v test=1 >/dev/null
在 dump_script.sql
-脚本中,我有以下代码:
\set dbName 'db_dev'
IF :test = 1 THEN
dbName := 'db_test'
END IF;
如果我不使用 test
参数,一切都会按预期工作,常规开发数据库已构建 - 如果我将 test
提供给脚本,则会抛出以下错误。
ERROR: syntax error at or near "IF"
LINE 1: IF 1 = 1 THEN
我做错了什么?
这个答案是可能的,因为来自@jjanes
的提示
\set dbName 'dbDev'
SELECT :test = 1 AS is_test_run \gset
\if :is_test_run
\set dbName 'dbTest'
\endif
这符合预期!
我有以下 bash 脚本调用。
psql -U postgres postgres < ../dump_script.sql -v test=1 >/dev/null
在 dump_script.sql
-脚本中,我有以下代码:
\set dbName 'db_dev'
IF :test = 1 THEN
dbName := 'db_test'
END IF;
如果我不使用 test
参数,一切都会按预期工作,常规开发数据库已构建 - 如果我将 test
提供给脚本,则会抛出以下错误。
ERROR: syntax error at or near "IF"
LINE 1: IF 1 = 1 THEN
我做错了什么?
这个答案是可能的,因为来自@jjanes
的提示\set dbName 'dbDev'
SELECT :test = 1 AS is_test_run \gset
\if :is_test_run
\set dbName 'dbTest'
\endif
这符合预期!