create schema
スキーマはデータベース内に存在する名前空間なので、create schema文は現在接続しているデータベース内に作成します。authorization オプションを使った場合、そのスキーマに作成されるオブジェクトは authorization オプションで指定したユーザが所有者になります。参考までにですが、「pg_」で始まるスキーマ名を作成する事はできません。pg_始まりのプレフィクスはシステムスキーマ名として予約されています。
create schema udonman ;
-- スキーマ配下に作成されるオブジェクトの所有者はauthorizationで指定したユーザとなる create schema udonman authorization sooni ;
作成例
ユーザと同じスキーマを作成した場合、同時にカレントスキーマも変更します。
-- 事前にサーチパスを確認
-- (デフォルトの状態)
--
udondb=> show search_path;
search_path
-----------------
"$user", public
(1 行)
-- ユーザと同一名のスキーマを作成する前はログインした際のカレントスキーマは
-- publicになっています。
--
udondb=> select current_user,current_schema,current_database()
udondb-> ;
current_user | current_schema | current_database
--------------+----------------+------------------
udonman | public | udondb
(1 行)
-- ユーザと同じ名前のスキーマを作成する
--
udondb=> create schema udonman;
CREATE SCHEMA
-- 以下の通りスキーマ作成と同時にカレントスキーマも変更しています。
--
udondb=> select current_user,current_schema,current_database()
udondb-> ;
current_user | current_schema | current_database
--------------+----------------+------------------
udonman | udonman | udondb
(1 行)
udondb=>