【发布时间】:2014-07-20 03:09:23
【问题描述】:
我想和这个问题的答案一样: Check if table exists 但我想检查是否存在任何表,而不仅仅是一个特定的表,而不是遍历表名,我的意思是数据库中是否有任何表。 根据API,getTables()的第三个参数,
tableNamePattern - 表名模式;必须与存储在数据库中的表名匹配
所以看起来 tableName 应该在数据库中完全匹配。有没有更好的方法来查找数据库中是否存在任何表?或者我真的必须遍历一个表名数组并调用:
getConnection().getMetaData().getTables(null, null, "table", null).next();
每次迭代?
【问题讨论】:
-
您提供的链接中的答案(选择的那个)有您的要求。
meta.getTables(null, null, null, new String[] "TABLE"});然后你就遍历它。 -
@JorgeCampos 其实第三个参数应该是
"%"。 JDBC 不完全清楚null是否应该为此参数工作,如果为该参数指定 null,则某些驱动程序将无法工作。 -
您链接到的问题中接受的答案将返回所有表格(至少:在某些驱动程序中,但不是所有驱动程序,否则请参阅我之前的评论)。
-
@MarkRotteveel 听起来您需要将您的评论添加到您建议的副本的已接受答案中。
标签: java sql sql-server database jdbc