Java 液化酶:如何使用<;whereparams>;内部<;更新>;?
我正在寻找一个关于如何使用属于Java 液化酶:如何使用<;whereparams>;内部<;更新>;?,java,sql,database-migration,liquibase,Java,Sql,Database Migration,Liquibase,我正在寻找一个关于如何使用属于的的示例,但我找不到任何东西(即使在官方文档中) 非常感谢您的帮助。谢谢。的文档非常稀少,但基本上包含一个类似SQL的where子句。所以如果你通常会做这样的事情 UPDATE cat.person SET address = NULL WHERE id=12; 那么您的变更集将如下所示: <changeSet author="liquibase-docs" id="update-example"> <update catalogNam
的
的示例,但我找不到任何东西(即使在官方文档中)
非常感谢您的帮助。谢谢。的文档非常稀少,但基本上包含一个类似SQL的where子句。所以如果你通常会做这样的事情
UPDATE cat.person SET address = NULL WHERE id=12;
那么您的变更集将如下所示:
<changeSet author="liquibase-docs" id="update-example">
<update catalogName="cat"
schemaName="public"
tableName="person">
<column name="address" type="varchar(255)"/>
<where>id=12</where>
</update>
</changeSet>
id=12
示例用法如下
<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>
id=:值
其中,
块中的:value语句替换为'param'块中的值。如果有多个:value语句,则在where子句中按顺序替换它们
但是,从代码来看,whereParams的用法似乎没有得到很好的使用或集成。也许我不知道在哪里获取它,但它甚至可能不在blob/clob更新之外工作
尝试一下,看看它是否适合您,否则我会说坚持使用标准的
where
块,直到支持得到改进。对于Nathan关于此功能缺乏支持的评论,我可以确认它在3.3.2版中运行良好。当他评论liquibase是3.1.1版时。也许支持在3.1.1和3.3.2之间有所改进,但通过快速浏览更改日志,我看不出这是哪个版本。I support@nathan voxland answer。看来他很会喝酒
但我想再分享一个where/whereParams示例,该示例具有附加功能(您也可以使用whereParams块作为字段名):
:name=:value和:name=:value
我相信我的例子不需要更多的解释。谢谢你的回答,但我想知道如何使用内部?很抱歉,我以前甚至不知道。我得做些研究,看看能不能弄清楚那是什么。
<where>:name=:value and :name=:value</where>
<whereParams>
<param name="id" valueNumeric="21"/>
<param name="name" value="bob"/>
</whereParams>