Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 液化酶:如何使用<;whereparams>;内部<;更新>;?_Java_Sql_Database Migration_Liquibase - Fatal编程技术网

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>