1. ホーム
  2. postgresql

[解決済み] postgresのユーザが存在するかどうかを確認する方法は?

2023-01-02 03:25:10

質問

createuser PostgreSQLでユーザ(ROLE)を作成することができます。そのユーザ(名)がすでに存在しているかどうかを確認する簡単な方法はありますか?そうでなければ、createuserはエラーで返されます。

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

UPDATE: ソリューションはシェルから実行可能であることが望ましく、そうすればスクリプトの中で自動化することが容易になります。

どのように解決するのですか?

SELECT 1 FROM pg_roles WHERE rolname='USR_NAME'

そして、コマンドラインに関しても(Erwinに感謝)。

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 ...