4

私がフィードするSQLスクリプトでこれをやろうとしていますpsql:

ALTER DATABASE dbname SET SEARCH_PATH TO myschema,public

dbnameしかし、ハードコーディングするのではなく、現在のデータベースに動的に設定する必要があります。

これはPostgreSQLで可能ですか? 私はこれを試しましたが、うまくいきません:

ALTER DATABASE (select current_database()) SET SEARCH_PATH TO myschema,public;
4

1 に答える 1

6

このようなステートメントは、識別子をパラメーター化できないプレーン SQL では実行できません。動的 SQL を実行する plpgsql 関数を
作成できます。

PostgreSQL 9.0以降では、次のDOステートメントも使用できます。

DO $$
BEGIN
EXECUTE '
ALTER DATABASE ' || current_database() || ' SET SEARCH_PATH TO myschema,public';
END; $$;
于 2012-04-18T15:51:09.167 に答える