2016-09-07 3 views
0

私はliquibaseを使って作成しようとしているテーブルを持っています。昔ながらのSQLでLiquiBaseの制約で許容される値のリストを指定するにはどうすればよいですか?

、私は

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) 
); 

を書くでしょうLiquiBaseをXMLで(CHECK (is_foo IN (0, 1))文の)同等とは何ですか?

答えて

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:チェック制約、**すべての**制約名。 –

関連する問題