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

use*_*641 1 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>
Run Code Online (Sandbox Code Playgroud)

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

dbf*_*dbf 5

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