我想在Liquibase的PostgreSQL数据库表上为遵循此逻辑的整数数据类型列创建检查约束:
int_value >= 0 AND int_value <= 6
什么是正确的XML请求才能实现这一目标?
最佳答案
这应该是这样的:
<column name="int_value" type="INT" >
<constraints checkConstraint="CHECK (int_value >= 0 AND int_value <= 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 >=0 AND int_value <= 6)
</sql>
关于Liquibase中的PostgreSQL检查约束,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38315020/