我想在Liquibase的PostgreSQL数据库表上为遵循此逻辑的整数数据类型列创建检查约束:

int_value >= 0 AND int_value <= 6

什么是正确的XML请求才能实现这一目标?

最佳答案

这应该是这样的:

     <column name="int_value" type="INT" >
        <constraints checkConstraint="CHECK (int_value &gt;= 0 AND int_value &lt;= 6)"/>
    </column>

但是,当前的Liquibase(3.5.1)忽略checkConstraint属性。有一个pull request,但仅添加到4.0里程碑中。

因此,我们必须暂时将原始sql用于检查约束。这对我有用:
<createTable tableName="test">
     <column name="int_value" type="INT"/>
</createTable>
<sql>
    ALTER TABLE test ADD CONSTRAINT int_check CHECK (int_value &gt;=0 AND int_value &lt;= 6)
</sql>

关于Liquibase中的PostgreSQL检查约束,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38315020/

10-13 02:35