好吧,在systemuser中插入用户之后,我想使用新用户的密码为PostgreSQL创建一个ROLE。但是当我尝试创建用户时,会出现此错误:
块引用 错误:“NEW”处或附近的语法错误 第24行:更新用户NEW.login加密密码NEW.password ...
CREATE OR REPLACE FUNCTION trg_insertuser()
RETURNS TRIGGER AS $trg_insertuser$
DECLARE
BEGIN
IF (TG_OP = 'DELETE') THEN
DROP USER OLD.login;
ELSIF (TG_OP = 'UPDATE') THEN
ALTER USER OLD.login ENCRYPTED PASSWORD NEW.password;
ELSIF (TG_OP = 'INSERT') THEN
CREATE USER NEW.login ENCRYPTED PASSWORD NEW.password CREATEDB IN GROUP group_user;
END IF;
RETURN NULL;
END;
$trg_insertuser$ LANGUAGE plpgsql;
发生了什么事?
答案 0 :(得分:1)
使用execute
。
execute 'drop user ' || quote_ident(OLD.login);
等...