【问题标题】:altering my sql table to add multiple new columns at once using liquibase使用 liquibase 更改我的 sql 表以一次添加多个新列
【发布时间】:2015-10-08 17:52:37
【问题描述】:

使用 liquibase xml 更改表并一次添加多个列的正确语法是什么。官方文档给出了只添加一列的例子:

<changeSet author="liquibase-docs" id="addColumn-example">
    <addColumn catalogName="cat"
            schemaName="public"
            tableName="person">
        <column name="address" type="varchar(255)"/>
    </addColumn>
</changeSet>

现在如果我想一次添加多个列,正确的语法是什么:

<changeSet author="liquibase-docs" id="addColumn-example">
    <addColumn catalogName="cat"
            schemaName="public"
            tableName="person">
        <column name="job" type="varchar(255)"/>
    </addColumn>
    <addColumn catalogName="cat"
            schemaName="public"
            tableName="person">
        <column name="designation" type="varchar(255)"/>
    </addColumn>
</changeSet>

是正确的还是

<changeSet author="liquibase-docs" id="addColumn-example">
    <addColumn catalogName="cat"
            schemaName="public"
            tableName="person">
        <column name="job" type="varchar(255)"/>
       <column name="designation" type="varchar(255)"/>
    </addColumn>   
</changeSet>

以上两个哪个是正确的?或完全不同的东西。

【问题讨论】:

    标签: liquibase


    【解决方案1】:

    这两个例子都可以。

    【讨论】:

    • 在添加操作失败的情况下回滚如何在两种情况下添加回滚条件?
    • 如果我没记错的话, addColumn 是具有“默认”回滚的重构之一,即删除列。如果您要在回滚场景中保留这些列中的数据的情况下使用此功能,则需要进行自定义回滚更改。如果有疑问,您可以部署更改日志,然后使用生成 SQL 的回滚命令之一(rollbackSQL、rollbackToDateSQL 或 rollbackCountSQL)来预览会发生什么。
    猜你喜欢
    • 2017-08-29
    • 2011-02-22
    • 2013-08-23
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    相关资源
    最近更新 更多