使用liquibase更新表中的一行

时间:2013-05-18 18:33:16

标签: sql database liquibase

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

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

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

谢谢

3 个答案:

答案 0 :(得分:44)

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

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

使用单引号很重要&#39;而不是双引号&#34;在WHERE子句中。

答案 1 :(得分:1)

可以通过这种方式修改上述帖子以更正格式。插入的值=“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>

答案 2 :(得分:-1)

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

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

的更多信息