使用Liquibase插入空值

9
我们使用liquibase来管理我们的一个MySQL数据库的更新、回滚等操作。
我遇到的一个小问题是在更新或回滚的过程中将值设置为null。例如:
        <rollback>
            <update tableName="boats">
                <column name="engine" value="null" />
                <column name="oars" value="2" />

起初我有点担心"null"会直接插入字符串"null",但实际上liquibase似乎有些智能,可以插入一个空值。

我想知道这是否是推荐的方法,或者是否有一种平台无关的方式在liquibase中明确地表示“nullValue”?

1个回答

21
只需在<column>标签上省略value属性即可。
<rollback>
    <update tableName="boats">
        <column name="engine" type="varchar(255)"/>
    </update>
</rollback>

参考文献: 更新


3
更新仍然将字段设置为 Null,但是我没有找到这种行为在参考文档中有记录。Liquibase 文档只是简单地说:“注意:如果未设置,则按它们出现的顺序使用定义的第一个 valueXXX。”(其中我认为 valueXXX 指的是 valueNumeric 或类似的变量),并且从未提及根本不使用任何值的情况。这种行为是否在其他地方有记录?了解这是有意的,并且将来不会更改会让人感到宽慰。 - jeffrey.d.m
更新似乎仍将字段设置为Null,但我无法在参考文献中找到这种行为的记录。Liquibase文档只是简单地说:“注意:如果没有设置,则按它们出现的顺序使用第一个valueXXX定义的值。”(其中我假设valueXXX指的是valueNumeric或类似的值),并且从未提到根本不使用任何值的情况。这种行为是否在其他地方有记录?了解这是有意的,并且将来不会更改将是令人放心的。 - jeffrey.d.m

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接