| 項目 | バージョン |
|---|---|
| OS | Windows Server 2022 |
| PostgreSQL | 16.4 |
■データベース
PostgreSQLをインストールした直後の状態では3つのデータベースが作成されています。
| 名称 | 説明 |
|---|---|
| postgres | 管理用データベース |
| template0 | template0データベースが空でないときに、create database –templateで指定することで、空の状態のデータベース作成ができる。 |
| template1 | create database時に参照される雛形データベース。この内容がコピーされることになる。 |
■スキーマとは
PostgresSQLのスキーマはテーブル等のオブジェクトをまとめて管理するための構造です。フォルダ構造のように同じ名前のテーブルを異なるフォルダ配下に作成できるようにスキーマが異なれば、同名のテーブルの作成ができます。階層化はできませんがプログラミングにおける名前空間のようなものです。
スキーマ名を指定して各オブジェクトにアクセスすることができます。例えば異なるスキーマに同じ名前のテーブルがあったとき、「どの」スキーマのテーブルと区別するのかという話になりますが、「スキーマ検索パス」という機構により実現されています。
https://www.postgresql.jp/document/16/html/sql-createschema.html
■スキーマ検索パスとは
スキーマ検索パスはテーブル名などのオブジェクトを探す際に、「どの」スキーマに所属しているかを検索する際の優先順位のようなものです。設定値は「postgresql.conf」という設定ファイルに記載されており、「postgresql.conf」はインストールフォルダの「data」配下に作成されています。(以下はWindows環境のインストールフォルダです)

ちなみに設定ファイルの先頭行が「#」だとコメント(設定として無効)なのですが、「#search_path」はコメントの状態でもデフォルト設定として有効なようです。(わかりづらい)

postgresql.confで「search_path」がコメントになっていたが、「show search_path」コマンドの結果としては設定されているのと同じ結果になるようです。

コメントを残す