簡體   English   中英

如何獲取模式的所有表名稱?

[英]How can I get all tables names of a schema?

如何獲取模式的所有表名稱? 我已經試過了:

DatabaseMetaData metaData = (DatabaseMetaData) conn.getMetaData();
metaData.getTables(null, schema, null, null);

但它不起作用。

最后我做了這個:

conn.setCatalog(mySchema);
String sqlQuery = "show tables";
rs = ps.executeQuery(sqlQuery); 
while (rs.next())
{
   System.out.print(rs.getString(1));
}

請嘗試以下操作:

DatabaseMetaData metaData = (DatabaseMetaData) conn.getMetaData();
ResultSet rs = metaData.getTables(null, null, "%", null);
while (rs.next()) {
  System.out.println(rs.getString(3));
}

文檔說,第三列是TABLE_NAME

ResultSet tables = metaData.getTables(null, null, null, new String[] {"TABLE"});
while (tables.next()){
    System.out.print(tables.getString("TABLE_NAME") + " ");
}

編輯:第二個參數是您指定架構模式(例如“ Sales”)的位置,所有架構均為null。

對於mysql:5.6-

要獲取特定模式的特定表,我必須將模式名稱作為“ catalog”參數(第一個參數)傳遞。 如果我將其作為“ schemaPattern”參數(第二個參數)傳遞,它就忽略了。

我認為這與“創建模式”是mysql中“創建數據庫”的同義詞有關。https://dev.mysql.com/doc/refman/8.0/zh-CN/create-database.html

DatabaseMetaData meta = (DatabaseMetaData) 

support.getConnection().getMetaData();
    rs = meta.getTables("schema_name", null, null, new String[] { "TABLE" });
    while (rs.next()) {
        String tblName = rs.getString("TABLE_NAME");
        System.out.println(tblName);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM