AWS Redshift: Могу ли я использовать оператор case для создания нового пользователя, если он еще не существует? - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь автоматизировать создание пользователя в AWS. Тем не менее, если я просто напишу сценарии создания пользователей, они потерпят неудачу, если перезапустить и пользователи уже существуют.

Я работаю в AWS Redshift.

Я бы хотел иметь возможность сделать что-то вроде

CREATE USER IF NOT EXISTS usr_name
   password '<random_secure_password>'
   NOCREATEDB
   NOCREATEUSER
;

, однако это не представляется возможным.

Тогда я нашел утверждения CASE, но это не так кажется, что операторы CASE могут работать для меня либо.

т.е.

CASE WHEN
   SELECT count(*) FROM pg_user WHERE usename = 'usr_name' = 0
   THEN
   CREATE USER usr_name
      password '<random_secure_password>'
      NOCREATEDB
      NOCREATEUSER
END

Будет ли это работать? (Не суперпользователь, так что я не могу сам это проверить)

Если нет, есть идеи? Все помогает, заранее спасибо.

...