2015-11-20 31 views
2

我目前在我的一个小项目中使用Liquibase,工作很好。 但现在我面临一个问题。我的ChangeLog在我的testenv中按预期工作,但在我的生产环境中失败。发生这种情况是因为我的prod表包含几行数据。在表格间移动数据

我知道有一个UPDATE命令在liquibase,但我不知道如何正确使用它。

我想存档的是从列表B移动到列表A而不会丢失其数据。表B包含表A的一个外键。一个正常的SQL语句看起来不像update A set A.x = (select B.x from B where B.id = A.id)

如果有人能给我一个这样的更新变更集的例子,那将是很好的。

Thx!

+2

做的最简单的办法是使用[''(http://www.liquibase.org/documentation/changes/sql.html)标签,记到该标签的'update'语句。我发现[''](http://www.liquibase.org/documentation/changes/update.html)_tag_使用起来非常麻烦。 –

+0

谢谢!这工作正常。看到它如何与''标签一起工作对我来说仍然很有趣 – Cerbis

回答

2

它可能看起来像

<changeSet ...> 
    <update tableName="TABLE_A"> 
      <column name="x" valueComputed="(select b.x from TABLE_B b where b.id=id)"/> 
    </update> 
</changeset>