Ein UNIQUE
Einschränkung erlaubt mehrere Zeilen mit NULL
Werte, weil zwei NULL
Werte werden nie als gleich angesehen.
Ähnliche Überlegungen gelten für CHECK
Einschränkungen. Sie lassen zu, dass der Ausdruck TRUE
ist oder NULL
(nur nicht FALSE
). Wieder NULL
Werte bestehen die Prüfung.
Um das auszuschließen, muss die Spalte müssen definiert werden NOT NULL
. Oder machen Sie ihn zum PRIMARY KEY
da PK-Spalten definiert sind NOT NULL
automatisch. Einzelheiten:
Verwenden Sie auch einfach boolean
:
CREATE TABLE public.onerow (
onerow_id bool PRIMARY KEY DEFAULT TRUE
, data text
, CONSTRAINT onerow_uni CHECK (onerow_id)
);
Der CHECK
So einfach kann Constraint für einen boolean
sein Säule. Nur TRUE
ist erlaubt.
Sie können REVOKE
(oder nicht GRANT
) das DELETE
und TRUNCATE
Privilegien von public
(und alle anderen Rollen), um zu verhindern, dass die einzelne Zeile jemals gelöscht wird. Wie:
REVOKE DELETE, TRUNCATE ON public.onerow FROM public;