Как написать SQL script для создания ROLE в PostgreSQL 9.1, но без повышения ошибки, если он уже существует?
Текущая script просто имеет:
CREATE ROLE my_user LOGIN PASSWORD 'my_password';
Это не удается, если пользователь уже существует. Мне хотелось бы что-то вроде:
IF NOT EXISTS (SELECT * FROM pg_user WHERE username = 'my_user')
BEGIN
CREATE ROLE my_user LOGIN PASSWORD 'my_password';
END;
... но это не работает - IF
, похоже, не поддерживается в простом SQL.
У меня есть командный файл, который создает базу данных PostgreSQL 9.1, ее роль и некоторые другие вещи. Он вызывает psql.exe, передавая имя SQL script для запуска. Пока все эти сценарии являются обычным SQL, и я бы хотел избежать PL/pgSQL и, если возможно,.