Check constraint on existing column with PostgresQL

If you are okay with (or want) Postgres to generate a constraint name you can use the following shorthand syntax.

ALTER TABLE foo
    ADD CHECK (column_1 > 2);

You can add a new constraint with with alter table command. From documentation this example:

ALTER TABLE distributors 
ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5) NO INHERIT;

You will have to replace constraint name as well as table name and content by your local requirements.


Use alter table to add a new constraint:

alter table foo 
   add constraint check_positive check (the_column > 0);

More details and examples are in the manual:
http://www.postgresql.org/docs/current/static/sql-altertable.html#AEN70043

Edit

Checking for specific values is done in the same way, by using an IN operator:

alter table foo 
   add constraint check_positive check (some_code in ('A','B'));