2016-09-07 2 views
0

У меня есть таблица, которую я пытаюсь создать с помощью Liquibase.Как я могу указать список допустимых значений в ограничении LiquiBase?

В простой старый SQL, я написал бы

CREATE TABLE foo_bar (
    foo_bar_id varchar2(40) NOT NULL, 
    is_foo  number(1)  NOT NULL, 
    is_bar  number(1)  NOT NULL, 
    CHECK (is_foo IN (0, 1)), 
    CHECK (is_bar IN (0, 1)), 
    PRIMARY KEY(foo_bar_id) 
); 

Что является эквивалентом (в CHECK (is_foo IN (0, 1)) заявление) в LiquiBase XML?

ответ

1

В настоящее время Liquibase не поддерживает контрольные ограничения. Для этого вам нужно запустить пользовательский SQL:

<createTable name="foo_bar"> 
    .... here is the table definition without the check constraint 
</createTable> 
<sql splitStatements="false"> 
    alter table foo_bar 
    add constraint check_is_foo CHECK (is_foo IN (0, 1)) 
</sql> 
<sql splitStatements="false"> 
    alter table foo_bar 
    add constraint check_is_bar CHECK (is_bar IN (0, 1)) 
</sql> 
+0

Это сработало для меня. Просто добавленное примечание, имена ограничений CHECK должны быть глобально уникальными (в рамках схемы) – Vihung

+0

@Vihung: не только проверить ограничения, ** все ** имена ограничений. –

Смежные вопросы