33

我希望是否有人可以验证这是否是使用 liquibase 填充数据库的正确语法和正确方法?所有,我想要的是改变表中一行的值,我这样做是这样的:

<changeSet author="name" id="1231">
<update tableName="SomeTable">
    <column name="Properties" value="1" />
    <where>PROPERTYNAME = 'someNameOfThePropery"</where>
</update>
<changeSet>

我想要的只是在某个表中连续更改一个值。以上不起作用,虽然应用程序已编译并且它没有抱怨,但是唉,值没有改变。

谢谢

4

3 回答 3

91

上面的答案过于复杂,对于大多数情况这已经足够了:

<changeSet author="name" id="123">
    <update tableName="SomeTable">
        <column name="PropertyToSet" value="1" />
        <where>otherProperty = 'otherPropertyValue'</where>
    </update>
</changeSet>

在 WHERE 子句中使用单引号 ' 而不是双引号 " 很重要。

于 2017-04-14T11:15:08.167 回答
2

可以通过这种方式修改上述帖子以更正格式。Inserted value="1" 这是本文问题中的预期结果。

<changeSet author="name" id="1231">
    <update catalogName="dbname"
            schemaName="public"
            tableName="SomeTable">
        <column name="Properties" **value="1"** type="varchar(255)"/>
        <where>PROPERTYNAME = 'someNameOfThePropery'</where>
    </update>
</changeSet>
于 2017-04-13T11:16:16.910 回答
-8

对的,这是可能的。请参阅以下语法:

<changeSet author="name" id="1231">
    <update catalogName="dbname"
            schemaName="public"
            tableName="SomeTable">
        <column name="Properties" type="varchar(255)"/>
        <where>PROPERTYNAME = 'someNameOfThePropery'</where>
    </update>
</changeSet>

更多信息在Liquibase 更新

于 2013-05-29T08:02:27.580 回答