DatabaseMetaData dbm = connection.getMetaData(); // connection is of type Connection (in JDBC)
ResultSet tables = dbm.getTables(null, null, "table name", null); // check if table is there
if (tables.next()) {
//Table exists
} else {
//Table does not exist
}
我的问题是如何检查视图是否存在。上面的代码是如何检查表是否存在。我知道它与上面的代码类似,但我遇到了麻烦。
答案 0 :(得分:4)
getTables()
方法可以返回所有类型的表(视图被视为表的一种类型)。最后一个参数可用于搜索特定类型。
在您的情况下,您可以使用dbm.getTables(null, null, "viewname", new String[]{"VIEW"});
。 javadocs很好地解释了这一点,所以在你问这里之前你应该阅读它们。
答案 1 :(得分:0)
我的问题是表名是用java代码编写的,带有驼峰的情况,这在检查表是否存在时会引起问题 - 但它在删除和创建时工作得很好。所以我所做的只是
ResultSet tables = dbm.getTables(null, null, "table name".toLowerCase(), null);