SELECT current_setting('hoge')
で取得する値を変更したい。
set_config
set_config(setting_name, new_value, is_local)
を実行したが、変更が反映されなかった。set_configによる変更のスコープはセッション単位であるため。
SETでセッション内でローカルに変更できるパラメータの値を変更することができます。対応する関数はset_config(setting_name, new_value, is_local)です。
ALTER DATABASE
ALTER DATABASEを使用すると、変更が永続化される(データベース単位のグローバルな設定値が変更される)。
ALTER DATABASE db_name SET setting_name TO new_value
PostgreSQLは3つのSQLコマンドでデフォルト値を設定します。 すでに説明したALTER SYSTEMコマンドは、SQLによってグローバルな設定値を変更する方法を提供します; postgresql.confを編集するのと等価です。これに加え、データベース単位あるいはロール単位で設定するためのコマンドがあります:
ALTER DATABASEコマンドはデータベース単位でグローバルな設定値を上書きします。
ちなみに、サーバーのデフォルト値を変更する場合は、ALTER SYSTEM
またはpostgresql.confを編集する。