DB2 和 Informix 检测表是否存在

原创 db2informix

最近有某需求,需要检测数据库中表是否存在。然后又遇到 IBM 这个灾星了,跪服。

SQL 实现的标准要求数据库(DBMS)要有一个存放和管理数据库信息的库,例如 MySQL 的 information_schema,那自然其它数据库也是有的。不过就是看究竟是哪一个了。

检测 DB2 中是否存在某表

select count(1) as exist from syscat.tables where tabname='表的名称';

返回0就表示没有,大于0(一般就是返回1)就表示表存在。

详细内容可以使用 select * from syscat.tables 查看。

检测 Informix 中是否存在某表

select count(1) as exist from systables where tabname='表的名称'

返回结果解释同 DB2。

详细内容可以使用 select * from systables 查看。

Java 案例

如果是程序执行,这里有简单的案例

// check if exist
String isExist = "select count(1) as exist from systables where tabname='" + tis.getTableName().trim() + "'";
ResultSet rs = statement.executeQuery(isExist);
while (rs.next())
{
    int exist = rs.getInt(1);
    LOGGER.debug("[Informix]检测表返回值为:" + exist);
    if (exist > 0)
    {
        LOGGER.debug("[Informix]检测到目标表已存在");
    }
}
如果觉得这对你有用,请随意赞赏,给与作者支持
评论 0
最新评论