使用 liquibase ,liquibase中是否有一种方法可以清除CharSkill列中的所有数据,而不依赖于表的内容?
由于我将此部署到多个用户,因此内容可能会有所不同,但列是不变的。
我可以使用drop column然后添加相同的列,但我想知道它是否是最佳方式。
BEFORE:
用户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 |
+--------+----------+-----------+
AFTER:
用户A的角色表:
+--------+----------+-----------+
| CharID | CharName | CharSkill |
+--------+----------+-----------+
| 1 | Mickey | |
| 2 | Minnie | |
| 3 | Donald | |
+--------+----------+-----------+
用户B的角色表:
+--------+----------+-----------+
| CharID | CharName | CharSkill |
+--------+----------+-----------+
| 1 | Goofy | |
| 2 | Daisy | |
| 3 | Pluto | |
| 4 | Stitch | |
+--------+----------+-----------+
答案 0 :(得分:4)
没有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>