java - 检查 Liquibase Precondition 中是否不为 null 或不为 0

标签 java liquibase changeset preconditions

我目前遇到 liquibase 先决条件问题。 仅当前提条件请求不回答 0 或 null 时,我才想插入一些内容...我解释一下:

<changeSet id="myId" author="myName">
<preConditions onFail="MARK_RAN">
    <sqlCheck expectedResult=????>SELECT COUNT(1) FROM tableB WHERE column2 IS NOT NULL;
    </sqlCheck>
</preConditions>
<insert tableName="tableA">
    <column name="column1" valueComputed="(SELECT columnA FROM tableB WHERE columnB IS NOT NULL;)" />
    <column name="column2" valueComputed="(SELECT columnB FROM tableB WHERE columnB IS NOT NULL;)" />
</insert>

我希望只有在第一个请求给我结果时才播放我的changeSet。有没有办法在没有自定义前提条件的情况下做到这一点?

提前致谢

最佳答案

Liquibase 提供了条件前提条件和/或/不,可以与所有其他前提条件一起使用。对于您的情况,请包裹 <sqlCheck><not> .

<preConditions onFail="MARK_RAN">
    <not>
        <sqlCheck expectedResult="0">SELECT COUNT(1) FROM tableB WHERE column2 IS NOT NULL;</sqlCheck>
    </not>
</preConditions>

另请参阅Preconditions documentation .

关于java - 检查 Liquibase Precondition 中是否不为 null 或不为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54133148/

相关文章:

visual-studio - Visual Studio 可以(它应该能够)计算与工作项关联的任意两个变更集之间的差异吗?

java - Graphics2D setfont() 严重减慢了 java 应用程序的启动速度

oracle - 将整个模式从 oracle 数据库提取到另一个(java)(自动化)

mysql - 如何使用 Liquibase 将存储过程导入 MySQL?

liquibase - 检查 liquibase 中表的约束

mysql - Liquibase 从 3.2 升级到 3.3 时出现 "Invalid default value"

java - 在 Hibernate/JPA 中可选地使用级联

Java 计算平均执行时间

java - Eclipse 4.6 代码完成不适用于 Java 9