我有一个db升级脚本来更改几列上的某些数据类型。我想做一个前置条件检查,并且只在它是DECIMAL数据类型时调用ALTER TABLE,但我希望它更改为INTEGER。
无法为此找到预定义的前提条件,也无法编写sqlcheck。
答案 0 :(得分:0)
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>