这是我迄今为止尝试过的:
<changeSet id="1" author="nobody" context="x">
<comment>Ensure rank is between 0 and 100 inclusive</comment>
<sql>
ALTER TABLE User ADD CONSTRAINT chk_your_column CHECK (rank BETWEEN 1 AND 100);
</sql>
Liquibase 是否提供内置功能或标签来为整数列添加最小/最大值约束,或者使用原始 SQL 是唯一的选择?我在 Liquibase 文档中没有找到它。
注意:使用3个数据库:mssql,mysql,oracle
Liquibase 有
addCheckConstraint
标签,但仅 Liquibase Pro 支持。
这是来自 docs
的示例<changeSet author="liquibase-docs" id="addCheckConstraint-example">
<pro:addCheckConstraint catalogName="cat"
constraintName="const_name"
disabled="true"
schemaName="public"
tableName="person"
validate="true">A String</pro:addCheckConstraint>
</changeSet>
请注意,支持的数据库有:
DB2/LUW、DB2/z、MySQL 8.0、Oracle、PostgreSQL、SQL Server
如果您不使用 Liquibase Pro,那么我想您必须使用普通 SQL 来完成。