用于删除或清除列中所有数据的 Liquibase 脚本

Lor*_*ren 2 database liquibase

liquibase 有没有办法在不依赖表的内容的情况下使用liquibase清除CharSkill 列中的所有数据

由于我将把它部署给多个用户,因此内容可能会有所不同,但列是不变的。

我可以使用 drop column 然后添加相同的列,但我想知道这是否是最好的方法。

前:

用户A的字符表:

+--------+----------+-----------+
| CharID | CharName | CharSkill |
+--------+----------+-----------+
|      1 | Mickey   | Run       |
|      2 | Minnie   | Jump      |
|      3 | Donald   | Kick      |
+--------+----------+-----------+
Run Code Online (Sandbox Code Playgroud)

用户B的字符表:

+--------+----------+-----------+
| CharID | CharName | CharSkill |
+--------+----------+-----------+
|      1 | Goofy    | Punch     |
|      2 | Daisy    | Laugh     |
|      3 | Pluto    | Sing      |
|      4 | Stitch   | Crawl     |
+--------+----------+-----------+
Run Code Online (Sandbox Code Playgroud)

后:

用户A的字符表:

+--------+----------+-----------+
| CharID | CharName | CharSkill |
+--------+----------+-----------+
|      1 | Mickey   |           |
|      2 | Minnie   |           |
|      3 | Donald   |           |
+--------+----------+-----------+
Run Code Online (Sandbox Code Playgroud)

用户B的字符表:

+--------+----------+-----------+
| CharID | CharName | CharSkill |
+--------+----------+-----------+
|      1 | Goofy    |           |
|      2 | Daisy    |           |
|      3 | Pluto    |           |
|      4 | Stitch   |           |
+--------+----------+-----------+
Run Code Online (Sandbox Code Playgroud)

a_h*_*ame 6

一个简单的<update>没有 where 子句应该这样做:

<changeSet author="loren" id="1">
    <update tableName="character">
        <column name="charskill"/>
    </update>
</changeSet>
Run Code Online (Sandbox Code Playgroud)

或者只使用一个<sql>标签:

<changeSet author="loren" id="1">
    <sql>update character set charskill=null</sql>
</changeSet>
Run Code Online (Sandbox Code Playgroud)