Проверьте, не ноль или нет 0 в предварительном условии Liquibase - PullRequest
0 голосов
/ 10 января 2019

У меня в настоящее время проблема с предварительными условиями для жидких фаз. Я хотел бы вставить что-то, только если запрос предусловия не отвечает 0 или нуль ... Я объясняю:

<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>

Я бы хотел, чтобы мой набор изменений воспроизводился только в том случае, если первый запрос дал мне результат. Есть ли способ сделать это без пользовательских предварительных условий?

Заранее спасибо

1 Ответ

0 голосов
/ 10 января 2019

Liquibase предоставляет условные предварительные условия и / или / нет, которые могут использоваться со всеми другими предварительными условиями. В вашем случае оберните <sqlCheck> <not>.

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

См. Также документацию Предварительные условия .

...