我有一个数据库升级脚本来更改几列上的某些数据类型。我想进行preCondition
检查,仅当它是DECIMAL数据类型时才调用ALTER TABLE
,但我希望将其更改为INTEGER。
找不到预定义的前提条件,也无法编写sqlCheck
。
最佳答案
precondition
中没有列的dataType
的内置liquibase
。
您可以只检查该列是否存在。如果已经是所需的数据类型,则不会引发任何错误。
或
您可以在先决条件中使用sqlCheck
,它将类似于以下内容:
<preConditions onFail="MARK_RAN">
<not>
<sqlCheck expectedResult="DECIMAL">
SELECT DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'your_table_name'
AND COLUMN_NAME = 'your_column_name'
</sqlCheck>
</not>
</preConditions>