Я выполнение сценариев SQL, как:Могу ли я использовать консольное значение входного свойства в функции PSQL тела
psql -h localhost -p 5432 -U postgres --set=user_app=myservice_app --set=user_app_pswd=asdf1234 -f ../sql/create-app-user.sql
где create-app-user.sql
скрипт:
DO
$body$
BEGIN
IF NOT EXISTS(
SELECT *
FROM pg_catalog.pg_user
WHERE usename = ':user_app')
THEN
CREATE USER ":user_app" WITH PASSWORD ':user_app_pswd';
END IF;
END
$body$;
Все работает отлично, за исключением CREATE USER ":user_app"
части, так как двойные кавычки интерпретируют строку напрямую. Я не могу использовать одинарные кавычки, такие как CREATE USER ':user_app'
, потому что он выбрасывает syntax error at or near "':user_app'"
. Использование котировок вообще не приводит к той же ошибке.
Эскапинг также не помогает. Итак, мне интересно, как использовать значение свойства с двойными кавычками? Или любое другое решение с переменными может быть?
ли вы попробовать --set = user_app = 'myservice_app' и оставь кавычки в SQL-файл. –