You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Liquibase SQL格式预校验中检查结果>0?

Liquibase SQL格式预校验:验证计数大于0的实现

由于SQL格式的Liquibase预校验不支持<NOT>元素,也没法直接用expectedResult:>0这类比较写法,你可以通过改写SQL查询,把计数大于0的逻辑转换成返回固定值的形式,再匹配expectedResult来实现需求。

具体写法如下:

-- precondition-sql-check expectedResult:1 SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END FROM mytable WHERE columnA LIKE '%foo%'

原理说明:

  • 通过CASE WHEN语句,将COUNT(*) > 0的判断结果转换成1(存在符合条件的记录时)或0(不存在时)
  • 把expectedResult设为1,这样只有当查询返回1(即columnA中存在包含"foo"的值)时,数据库迁移才会执行

这种写法适配绝大多数数据库,不需要依赖特定数据库的语法特性,是SQL格式预校验下实现该需求的通用方案。

内容的提问来源于stack exchange,提问作者E-Riz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 20:42:33