Liquibase:将列数据复制到同一个表中的新列中

时间:2016-03-31 00:23:37

标签: sql database liquibase

我有一个带有A列的表。我正在创建一个新的列B. B将具有与A列相同的数据。如何在Liquibase中复制该列?是否有一些我可以编写的表达式来进行复制?

2 个答案:

答案 0 :(得分:11)

创建新的更改集,添加新列,然后使用B标记更新列<sql>

<changeSet author="yourName" id="example">
    <addColumn catalogName="db"
               schemaName="public"
               tableName="yourTable">
        <!-- replace varchar(255) with the actual type of column A -->
        <column name="B" type="varchar(255)"/>
    </addColumn>

    <sql>UPDATE yourTable SET B = A</sql>
</changeSet>

答案 1 :(得分:1)

这也是可能的:

<changeSet id="1" author="your_name">
    <addColumn tableName="your_table">
        <column name="b" type="varchar(255)"/>
    </addColumn>
</changeSet>

<changeSet id="2" author="your_name">
    <update tableName="your_table">
        <column name="b" valueComputed="a"/>
    </update>
</changeSet>