1

さて、systemuserにユーザーを挿入した後、新しいユーザーのパスワードを使用してPostgreSQLのROLEを作成するのが好きです。しかし、ユーザーを作成しようとすると、次のエラーが表示されます。

ブロック引用エラー:「NEW」またはその近くの構文エラー24行目:ALTER USER NEW.login ENCRYPTED PASSWORD 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;

何があったの?

4

1 に答える 1

1

使用してexecuteください。

execute 'drop user ' || quote_ident(OLD.login);

等...

于 2012-10-02T14:47:38.140 に答える