UNIQUE
制約により、NULL
の複数の行が許可されます 2つのNULL
であるため、値 値が同じであると見なされることはありません。
CHECK
にも同様の考慮事項が適用されます 制約。式をTRUE
にすることができます またはNULL
(FALSE
ではありません )。繰り返しますが、NULL
値はチェックを通過します。
それを除外するには、列は必須 定義されるNOT NULL
。または、PRIMARY KEY
にします PK列が定義されているためNOT NULL
自動的。詳細:
また、boolean
を使用するだけです :
CREATE TABLE public.onerow (
onerow_id bool PRIMARY KEY DEFAULT TRUE
, data text
, CONSTRAINT onerow_uni CHECK (onerow_id)
);
CHECK
boolean
の場合、制約はそれほど単純なものにすることができます。 桁。 TRUE
のみ 許可されています。
REVOKE
を使用することをお勧めします。
(またはGRANT
ではありません )DELETE
およびTRUNCATE
public
からの権限 (および他のすべての役割)単一の行が削除されないようにします。いいね:
REVOKE DELETE, TRUNCATE ON public.onerow FROM public;