如何编写一个PostgreSQL脚本来在SQL9.1中创建角色,而不会在角色已经存在的情况下引发错误?
当前脚本只包含:
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;
..。但这并不起作用--在普通的SQL中似乎不支持IF
。
我有一个批处理文件,用于创建PostgreSQL 9.1数据库、角色和其他一些东西。它调用psql.exe,传入要运行的SQL脚本的名称。到目前为止,所有这些脚本都是纯SQL,如果可能的话,我想避免使用PL/pgSQL之类的脚本。
https://stackoverflow.com/questions/8092086
复制相似问题