UN UNIQUE
la restricción permite múltiples filas con NULL
valores, porque dos NULL
los valores nunca se consideran iguales.
Se aplican consideraciones similares a CHECK
restricciones Permiten que la expresión sea TRUE
o NULL
(simplemente no FALSE
). De nuevo, NULL
los valores superan el control.
Para descartar eso, la columna debe ser definido NOT NULL
. O conviértalo en la PRIMARY KEY
ya que las columnas PK están definidas NOT NULL
automáticamente. Detalles:
Además, solo use boolean
:
CREATE TABLE public.onerow (
onerow_id bool PRIMARY KEY DEFAULT TRUE
, data text
, CONSTRAINT onerow_uni CHECK (onerow_id)
);
El CHECK
la restricción puede ser así de simple para un boolean
columna. Solo TRUE
está permitido.
Es posible que desee REVOKE
(o no GRANT
) el DELETE
y TRUNCATE
privilegios de public
(y todos los demás roles) para evitar que se elimine la única fila. Me gusta:
REVOKE DELETE, TRUNCATE ON public.onerow FROM public;