Liquibase 中的 PostgreSQL 检查约束

标签 postgresql liquibase

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

相关文章:

postgresql - Sequelize 找到这个或那个

尝试从 spring 连接时出现 java.lang.ClassNotFoundException : org. postgresql.Driver

oracle - 是否可以使用 liquibase 更新数据库中的现有行?

oracle - Liquibase - 在一个文件中上传多个 Oracle 触发器

liquibase - 如何在 Liquibase 中添加条件唯一约束?

liquibase - 连接到 HANA 时解锁 liquibase 锁

json - PostgreSQL:防止多重插入上的 SQL 注入(inject)

java - 在 JasperSoft 7.1.1 设备中创建新的 PostgreSQL 数据源时出现问题

sql - 从 PostgreSQL 中的 json 列表中删除 key

Liquibase:应用于表的 'catalogName' 、 'remarks' 和 'tablespace' 属性的含义是什么