如何在LiquiBase约束中指定允许值列表?

时间:2016-09-07 08:51:40

标签: sql constraints 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)
);

liquibase XML中的等效(CHECK (is_foo IN (0, 1))语句)是什么?

1 个答案:

答案 0 :(得分:2)

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>