检查是否存在唯一约束并使用liquibase删除它

时间:2016-10-26 07:41:12

标签: sql oracle liquibase

我有一个变更集,其中我最初检查是否存在唯一约束,然后如果它存在,它将删除约束。

<changeSet author="loren"
               id="DROP_UNIQUE_CONSTRAINT_RULEPRIORITY_ORACLE_v1" dbms="oracle">
        <preConditions onFail="MARK_RAN">
            <sqlCheck expectedResult="1">
                SELECT COUNT(*)
                FROM USER_CONSTRAINTS
                WHERE CONSTRAINT_NAME='UC_RULES_PRIORITY'
            </sqlCheck>
        </preConditions>
        <dropUniqueConstraint constraintName="UC_RULES_PRIORITY"
                              schemaName="${main.schema}"
                              tableName="RULES"/>

</changeSet>

这个问题似乎没有超越前提条件。它总是说MARK_RAN意味着没有找到约束。反过来,约束永远不会被删除。

我已尝试在我的数据库中执行SELECT语句,它返回1.

这是正确的方法还是有替代解决方案?

0 个答案:

没有答案