In article <[EMAIL PROTECTED]>, "Michael Lourant" <[EMAIL PROTECTED]> writes:
> Type Safety > Enumerated types are completely separate data types and may not be compared > with each other. ... > An Alternative Way To Do The Same > Instead of using an enum type we can set up a CHECK CONSTRAINT - this tells > postgresql to make sure that the value we are entering is valid. > CREATE TABLE person ( > personid int not null primary key, > favourite_colour varchar(255) NOT NULL, > CHECK (favourite_colour IN ('red', 'blue', 'yellow', 'purple')) > ); > INSERT INTO person(personid, favourite_colour) VALUES (1, 'red'); > INSERT 0 1 > Now for something not in the list: > INSERT INTO person(personid, favourite_colour) VALUES (2, 'green'); > ERROR: new row for relation "person" violates check constraint > "person_favourite_colour_check" Type safety is the thing you lose by replacing an ENUM by a CHECK constraint - you can still do something nonsensical like SELECT * FROM person WHERE favourite_colour = 'green' -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql