【问题标题】:Create column if it doesn't exist using Liquibase如果列不存在,则使用 Liquibase 创建列
【发布时间】:2021-07-17 15:04:06
【问题描述】:

在 Liquibase SQL 语法中,是否可以检查列是否不存在? 我已经看到有一个columnExists 前提条件,但找不到它的反面。

--changeset me:1 runAlways:false runOnChange:false failOnError:true
--precondition-column-exists tableName:my_table columnName:my_col
INSERT COLUMN

【问题讨论】:

    标签: sql oracle comments liquibase oracle19c


    【解决方案1】:

    您可以执行以下操作:

    --changeset me:1 runAlways:false runOnChange:false failOnError:true
    --precondition-sql-check expectedResult:0 SELECT COUNT(*) from information_schema.columns where column_name='COL' and table_name='TABLE'
    INSERT COLUMN QUERY HERE
    

    上述前提条件会检查表TABLE中是否存在列COL,如果返回的计数为0(表示该列不存在)则执行INSERT COLUMN查询。

    目前,“格式化 SQL”变更日志中仅支持“SQL 检查”前提条件。看看liquibase docs

    可以为每个变更集指定前提条件。目前,只有 支持 SQL 检查前置条件。

    --preconditions onFail:HALT onError:HALT
    --precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM my_table ```
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2014-07-20
      • 1970-01-01
      • 2012-02-04
      • 2012-11-25
      相关资源
      最近更新 更多