メモ

PostgreSQLのバージョン: 8.4.1

管理者でログイン

% sudo su - postgres
$ psql

ユーザの作成

管理者ユーザを作成する場合、オプションにsuperuserを付ける。

postgres=# CREATE ROLE hogeuser SUPERUSER LOGIN;

データベースの作成

postgres=# CREATE DATABASE testdb OWNER=hogeuser;

hogeuserでログイン

hogeuserのコマンドラインから

% psql testdb

テーブルの作成

CREATE TABLE t1 (
    id    SERIAL,
    cd1   TEXT,
    cd2   TEXT,
    name1 TEXT,
    CONSTRAINT t1_pk  PRIMARY KEY (id),
    CONSTRAINT t1_uk1 UNIQUE (cd1)
);
NOTICE:  CREATE TABLEはシリアル列"t1.id"用に暗黙的なシーケンス"t1_id_seq"を作成します。
NOTICE:  CREATE TABLE / PRIMARY KEYはテーブル"t1"に暗黙的なインデックス"t1_pk"を作成 します
NOTICE:  CREATE TABLE / UNIQUEはテーブル"t1"に暗黙的なインデックス"t1_uk1"を作成しま す

スキーマの作成

CREATE SCHEMA hogeuser AUTHORIZATION hogeuser;

テーブルを別のスキーマに引っ越す

テーブル t1 を public から hogeuser へ

ALTER TABLE t1 SET SCHEMA hogeuser;

シーケンス、インデックスのスキーマも変更される。

testdb=# \d
           リレーションの一覧
 スキーマ |   名前    |    型    | 所有者
 ---------+-----------+----------+--------
 hogeuser | t1        | table    | hogeuser
 hogeuser | t1_id_seq | sequence | hogeuser
testdb=# \di
              リレーションの一覧
 スキーマ |  名前  |  型   | 所有者   | テーブル 
 ---------+--------+-------+----------+----------
 hogeuser | t1_pk  | index | hogeuser | t1
 hogeuser | t1_uk1 | index | hogeuser | t1
(2 行)