Liquibase:检查<precondition>中是否存在不同数据库中的表的最佳方法

时间:2016-12-02 21:15:27

标签: sql liquibase

我有2个数据库:db 1和db 2

我需要根据db 2中的表是否存在对db 1采取不同的操作,并且我使用liquibase来记录我的操作。

这是我到目前为止的解决方案

<preconditions onFail="CONTINUE">
    <sqlcheck expectedResult="1">
          IF EXISTS (SELECT 1 FROM DB2.INFORMATION_SCHEMA.TABLES 
                  WHERE TABLE_NAME = 'MY_TABLE') 
                  SELECT 1 ELSE SELECT 0
    </sqlCheck>
</precondition>

问题是:这是mssql语法,如果我尝试使用不同的db,我需要更改为使用不同的语法,那么做这种事情的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您是否尝试过<tableExists>前置条件http://www.liquibase.org/documentation/preconditions.html? 您还可以在Java中将任何逻辑实现为<customPrecondition>