使用 liquibase 插入空值

f1d*_*ave 5 java mysql liquibase

我们使用 liquibase 来管理我们的 MySQL 数据库之一的更新、回滚等。

我遇到的一个小小的好奇是在更新或回滚过程中将值设置为 null 的过程。例子:

        <rollback>
            <update tableName="boats">
                <column name="engine" value="null" />
                <column name="oars" value="2" />
Run Code Online (Sandbox Code Playgroud)

起初我有点担心 "null" 会从字面上插入字符串 "null",但事实证明 liquibase 似乎有一些实际上插入空值的智能。

我想知道这是否是推荐的这样做的方式,或者是否有一种与平台无关的方式在 Liquibase 中明确地说“nullValue”?

Geo*_*sty 11

只需省略value属性 on <column>

<rollback>
    <update tableName="boats">
        <column name="engine" type="varchar(255)"/>
    </update>
</rollback>
Run Code Online (Sandbox Code Playgroud)

参考:更新

  • 更新似乎仍然将该字段设置为 Null,但是,我无法在参考中找到记录的此行为。liquibase 文档只是说“注意:如果未设置,则定义的第一个 valueXXX 将按照它们出现的顺序使用。” (我假设 valueXXX 指的是 valueNumeric 或类似的),并且从未提及根本不使用任何值的情况。此行为是否在其他地方有记录?如果知道这是有意为之的,并且将来不会改变,那就让人放心了。 (4认同)