Как проверить, существует ли пользователь postgres?

createuser позволяет создать пользователя (роли) в PostgreSQL. Есть простой способ проверить, если этот пользователь(название) уже существует? В противном случае createuser возвращается с ошибкой:

createuser: creation of new role failed: ERROR:  role "USR_NAME" already exists 

Обновление: решение должно быть исполняемый файл из оболочки, предпочтительно, так, что легче автоматизировать в скрипте.

SELECT 1 FROM pg_roles WHERE rolname='USR_NAME' 

И в плане командной строки (благодаря Эрвин):

psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='USR_NAME'" 

Дает результат 1, Если нашли и больше ничего.

То есть:

psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='USR_NAME'" | grep -q 1 || createuser ... 
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*