LiquiBase:如何在<update>中使用<whereparams>?

use*_*996 6 java sql database-migration liquibase

我正在寻找一个如何使用<whereparams></whereparams>它属于的例子<update></update>,但我找不到任何东西(即使在官方文档中).

任何帮助都非常感谢.谢谢.

Nat*_*and 9

一个示例用法是

<update tableName="updateTest">
        <column name="varcharColumn" value="new column 1 value"/>
        <column name="dateCol" valueDate="2008-01-01"/>
        <column name="intCol" valueNumeric="11"/>
        <where>id=:value</where>
        <whereParams>
            <param valueNumeric="134" />
        </whereParams>
</update>
Run Code Online (Sandbox Code Playgroud)

其中:<where>块中的:value语句被替换为`param'块中的值.如果有多个:value语句,则在where子句中按顺序替换它们.

但是,查看代码,看起来whereParams的使用没有得到很好的使用或集成.也许我错过了它被拾取的地方,但它甚至可能无法在blob/clob更新之外工作.

试一试,看看它是否适合你,否则我会坚持使用标准where块,直到支持得到改善.


Ser*_*gii 5

我支持@nathan-voxland 的回答。似乎他在 liquibase 方面非常擅长。

但我想再分享一个具有附加功能的where/whereParams示例(您也可以将 whereParams 块用于字段名称):

<where>:name=:value and :name=:value</where>
<whereParams>
    <param name="id" valueNumeric="21"/>
    <param name="name" value="bob"/>
</whereParams>
Run Code Online (Sandbox Code Playgroud)

我相信我的例子不需要更多的解释。