Skip to content

型・制約

=====< 型 >=====
【数値】
integer         (int)
real            小数
serial          連番

【文字】
char(5)         固定長
varchar(255)    上限付き可変長、
text            上限なし

【真偽値】
boolean

【日付】
date            日付
time            時間
timestamp       両方

<その他は公式サイトにて>
https://www.postgresql.org/docs/10/static/datatype.html
=====< 制約 >=====
not null
unique
default
primary key(not null, unique) ※1つのテーブルに1つのみ
check

TOAST(過大属性格納技法:The Oversized-Attribute Storage Technique)

https://www.postgresql.jp/document/pg940doc/html/storage-toast.html

<ストレージ:plain とか extended とかの>

TOASTコードでは、以下のTOAST可能な列を格納するための4つの異なる戦略を認めます。

PLAINは圧縮や行外の格納を防止します。 さらにvarlena型での単一バイトヘッダの使用を無効にします。 これはTOAST化不可能のデータ型の列に対してのみ取り得る戦略です。

EXTENDEDでは、圧縮と行外の格納を許します。 これはほとんどのTOAST可能のデータ型のデフォルトです。 圧縮がまず行われ、それでも行が大き過ぎるのであれば行外に格納します。

EXTERNALは非圧縮の行外格納を許します。 EXTERNALを使用すると、textとbytea列全体に対する部分文字列操作が高速化されます。 こうした操作は非圧縮の行外の値から必要な部分を取り出す時に最適化されるためです (格納領域が増加するという欠点があります)。

MAINは圧縮を許しますが、行外の格納はできません (実際にはこうした列についても行外の格納は行われます。 しかし、他に行を縮小させページに合わせる方法がない場合の最後の手段としてのみです)。