2015-02-12 4 views
0

Я пытаюсь установить ограничение проверки на существующий столбец.Проверить ограничение на существующий столбец с PostgresQL

Есть ли способ достичь этого из PostgreSQL?

+2

Конечно. Что вы пробовали до сих пор? Вы проверили документацию? – frlan

+0

@frlan Postgres - вполне приемлемое альтернативное имя для PostgreSQL –

ответ

5

Используйте alter table, чтобы добавить новое ограничение:

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

Более подробная информация и примеры содержатся в руководстве:
http://www.postgresql.org/docs/current/static/sql-altertable.html#AEN70043

Редактировать

Проверка конкретных значений осуществляется в таким же образом, используя оператора IN:

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

Как вы помещаете проверки перечислений в ограничение? –

+0

Что такое проверка перечислений? – frlan

+0

Мой вопрос был направлен на @Passionate Developer – frlan

0

С помощью команды alter table вы можете добавить новое ограничение. Из documentation этого примера:

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

Вы должны заменить имя ограничения, а также имя таблицы и содержание ваших местных требований.

0

Это следует сделать это:

create table test (
    id serial 
); 

alter table test 
add constraint id_not_null 
check (id is not null);