コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

スキーマの検索パス。

http://www.postgresql.jp/document/pg812doc/html/ddl-schemas.html
より。
スキーマの検索パスを設定可能。これで、より、仕事に使えそうだ。

修飾名を書くのは手間がかかりますし、どちらにしても、アプリケーションに特定のスキーマ名を書き込まない方が良いことも多いのです。そのため、テーブルは多くの場合、テーブル名しか持たない非修飾名として参照されます。システムは、検索するスキーマのリストである検索パスに従って、どのテーブルを指しているのかを判別します。検索パスで最初に一致したテーブルが、該当テーブルだと解釈されます。検索パス内に一致するテーブルがないと、データベースの他のスキーマ内に一致するテーブルがある場合でもエラーが報告されます。

検索パスの最初に列挙されているスキーマは、「現在のスキーマ」と呼ばれます。現在のスキーマは、検索される最初のスキーマであると同時に、スキーマ名を指定せずにCREATE TABLEコマンドでテーブルを作成した場合に新しいテーブルが作成されるスキーマでもあります。

現行の検索パスを示すには次のコマンドを使用します。

SHOW search_path;
デフォルトの設定では次のように返されます。

search_path

                          • -

$user,public

まあ、当たり前の機能と言えば当たり前かもしれないけど。
標準設定は、postgresql.confを編集すればできそう。

#search_path = '$user,public'	# schema names

の行を編集したらいいと思われる。
上記行は、標準では、コメントになっているっぽい。