我想在 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/