Restricting the value of columns in PostgreSQL

ENUM
--Enum type
 --case sensitive
 --4 Bytes on disk
 CREATE TYPE vaildcolor AS ENUM ('Blue','Pink');

REGEXP

--Case insensitivie regexp
 --accepts NULL
 --useful for complex/long text matching
 ALTER TABLE color ADD CONSTRAINT
 vaild_color CHECK(
 color ~*
 '^(blue|pink)$'
 );

CHECK

 --Case sensitivie =
 --accepts NULL
 ALTER TABLE color ADD CONSTRAINT
 vaild_color CHECK(
 color = 'Blue' OR color = 'Pink'
 );
Advertisements