0
Postgresでユーザ作成プロセスを自動化する機能を作成しようとしていますが、DDL文でパラメータを受け付けません。機能上DDL文を使用したPostgres関数
CREATE OR REPLACE FUNCTION AUTOUSER (uname varchar(20))
RETURNS TEXT AS $$
DECLARE
nm varchar(20);
BEGIN
nm=$1;
CREATE USER nm WITH PASSWORD 'Iash12';
GRANT ALL ON DATABASE iashdb TO nm;
GRANT ALL ON ALL TABLES IN SCHEMA public TO nm;
RETURN CONCAT(nm,' Created');
END;
$$
LANGUAGE plpgsql;
代わりに渡されたパラメータ名の「NM」としてユーザーに正しい結果を示したが、RETURN文を作成します。事前に感謝します。
これには動的SQLが必要です。http://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN –
動的SQLはDDL文をサポートしていないため、 SELECT、UPDATE、INSERT、DELETEだけをサポートします。 – Nik
もちろん、DDLをサポートしています。マニュアルのどこにその声明がありますか? –