PostgreSQLのDDL文纏め

PostgreSQLのDDL文纏め

create table文です。publicスキーマにempuserテーブルを作成します。

PostgreSQLでは、文字列はcharacter varying(number)とします。

数値はintegerです。

制約

制約にはいろいろ種類があり、以下になります。

制約
 NOT NULL
主キー制約
外部キー制約
ユニーク制約
チェック制約
デフォルト制約

not null制約については、not nullと指定します。これはほぼどのRDBMSも同じです。

チェック制約という制約があります。

例えば年齢は0歳以上のはずです。こういう決まりきったことはテーブルで制約を付けます。

テーブルのレコードを一意にするキーをプライマリキーと言いますが、PostgreSQLではprimary key (column)と指定します。

複合主キーの場合は、primary key(column1, column2)という感じで指定します。

ユニークキーはその列で一意のデータでないといけません。但し、NULLを許容し、かつ、NULLのレコードが複数あっても重複しているとはみなしません。

複合ユニークキーを指定する場合は、unique(column1, column2)と指定します。

PostgreSQL9.4よりjson形式のカラムを指定できるようになりました。

jsonb(json blob)を使います。

エンティティ・アトリビュート・バリュー(EAV)のソリューションとして使うことができるカラムです。

外部キー制約は、中間テーブルなどで使用します。外部キー制約を付けるカラムは、テーブルの主キーである必要があります。以下のempusersテーブルのidカラムは主キー、projectsテーブルのidカラムは主キーとなります。

主キーのテーブルが親テーブル、外部キー制約があるカラムが子テーブルです。

参照されているテーブル(親テーブル)のレコードが削除・更新された際に参照しているレコードも合わせて削除・更新することができます。デフォルトではNOT ACTIONが設定されており、エラーになります。

アクション
 NOT ACTION エラー
CASCADE(削除) 参照しているデータを削除する
CASCADE(更新) 参照しているデータを更新する
SET NULL 参照しているデータ(列)をNULLにする
SET DEFAULT 参照しているデータ(列)をデフォルト値にする

タイムゾーン変更

DB単位でタイムゾーンを変更します。

確認します。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA