Liquibase中是否有一种方法可以使用Liquibase清除charskill列中的所有数据,而不依赖于表的内容?
由于我将把这个部署到多个用户,内容可能会有所不同,但列是不变的。
我可以使用drop column,然后添加相同的列,但我想知道这是否是最好的方法。
之前:
用户A的字符表:

+--------+----------+-----------+
| CharID | CharName | CharSkill |
+--------+----------+-----------+
|      1 | Mickey   | Run       |
|      2 | Minnie   | Jump      |
|      3 | Donald   | Kick      |
+--------+----------+-----------+

用户B的字符表:
+--------+----------+-----------+
| CharID | CharName | CharSkill |
+--------+----------+-----------+
|      1 | Goofy    | Punch     |
|      2 | Daisy    | Laugh     |
|      3 | Pluto    | Sing      |
|      4 | Stitch   | Crawl     |
+--------+----------+-----------+

之后:
用户A的字符表:
+--------+----------+-----------+
| CharID | CharName | CharSkill |
+--------+----------+-----------+
|      1 | Mickey   |           |
|      2 | Minnie   |           |
|      3 | Donald   |           |
+--------+----------+-----------+

用户B的字符表:
+--------+----------+-----------+
| CharID | CharName | CharSkill |
+--------+----------+-----------+
|      1 | Goofy    |           |
|      2 | Daisy    |           |
|      3 | Pluto    |           |
|      4 | Stitch   |           |
+--------+----------+-----------+

最佳答案

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

<changeSet author="loren" id="1">
    <update tableName="character">
        <column name="charskill"/>
    </update>
</changeSet>

或者只使用<sql>标记:
<changeSet author="loren" id="1">
    <sql>update character set charskill=null</sql>
</changeSet>

关于database - Liquibase脚本删除或清除列中的所有数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40041231/

10-13 02:03