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

sin*_*unk 8 sql database liquibase

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

Tim*_*sen 12

创建一个新的变更集,在其中添加新列,然后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>
Run Code Online (Sandbox Code Playgroud)


小智 9

这也是可能的:

<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>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。我并没有直接寻找这个,但是关于“valueCompulated”的线索对我帮助很大 (2认同)