如果使用 Liquibase 不存在则创建列
Create column if it doesn't exist using Liquibase
在 Liquibase SQL 语法中,是否可以检查列是否不存在?
我看到有一个 columnExists
前提条件,但找不到相反的条件。
--changeset me:1 runAlways:false runOnChange:false failOnError:true
--precondition-column-exists tableName:my_table columnName:my_col
INSERT COLUMN
您可以执行以下操作:
--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 TABLE
中是否存在列COL
,如果返回的计数为0(这意味着该列不存在)则INSERT将执行 COLUMN 个查询。
目前,“格式化 SQL”更新日志仅支持“SQL 检查”前提条件。看看 liquibase docs.
Preconditions can be specified for each changeset. Currently, only the
SQL check precondition is supported.
--preconditions onFail:HALT onError:HALT
--precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM my_table ```
在 Liquibase SQL 语法中,是否可以检查列是否不存在?
我看到有一个 columnExists
前提条件,但找不到相反的条件。
--changeset me:1 runAlways:false runOnChange:false failOnError:true
--precondition-column-exists tableName:my_table columnName:my_col
INSERT COLUMN
您可以执行以下操作:
--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 TABLE
中是否存在列COL
,如果返回的计数为0(这意味着该列不存在)则INSERT将执行 COLUMN 个查询。
目前,“格式化 SQL”更新日志仅支持“SQL 检查”前提条件。看看 liquibase docs.
Preconditions can be specified for each changeset. Currently, only the SQL check precondition is supported.
--preconditions onFail:HALT onError:HALT --precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM my_table ```