java - 检查 Liquibase 前提条件中是否不为空或不为 0
问题描述
我目前对 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>
另请参阅前提条件文档。
推荐阅读
- unity3d - 适合不同分辨率的完美像素
- python - 尝试使用 pycharm 启动程序
- html - 如何使用 CSS 使内容居中以使用 Sticky Sidebar?
- python - 在 python 中创建类时出现“'module' object is not callable”错误
- java - 在 do/while 中导致无限循环的异常
- reactjs - React Typescript:无需转换为类型或枚举的字符串道具的智能感知建议
- javascript - 使用电子渲染器目标时选择由 webpack 处理的选择性 ES 功能
- azure-cognitive-search - 我可以在 Azure 认知搜索中使用可选筛选器吗
- git - .gitignore 不会忽略特定文件
- docker - 尝试在 docker 容器中运行 GUI 时为什么出现“无效的参考格式”?