检索给定表的索引和统计信息的说明。
语法
public java.sql.ResultSet getIndexInfo(java.lang.String cat, java.lang.String schema, java.lang.String table, boolean unique, boolean approximate)
参数
cat
包含目录名称的 String。
schema
包含架构名称的 String。
table
包含表名称的 String。
unique
如果仅返回唯一值的索引,则为 true。如果返回所有索引,则为 false。
approximate
如果结果反映近似值或过期值,则为 true。如果结果是准确的,则为 false。
返回值
异常
注释
此 getIndexInfo 方法由 java.sql.DatabaseMetaData 接口中的 getIndexInfo 方法指定。
由 getIndexInfo 方法返回的结果集将包含下列信息:
名称 | 类型 | 说明 |
---|---|---|
TABLE_CAT | String | 指定的表所在的数据库的名称。 |
TABLE_SCHEM | String | 表的架构。 |
TABLE_NAME | String | 表的名称。 |
NON_UNIQUE | boolean | 指示索引值是否可以不唯一。 |
INDEX_QUALIFIER | String | 索引所有者的名称。当 TYPE 为 tableIndexStatistic 时,该名称为 Null。 |
INDEX_NAME | String | 索引的名称。 |
TYPE | short | 索引的类型。可以是下列值之一: tableIndexStatistic (0) tableIndexClustered (1) tableIndexHashed (2) tableIndexOther (3) |
ORDINAL_POSITION | short | 列在索引中的序号位置。索引中的第一列为 1。 |
COLUMN_NAME | String | 列的名称。 |
ASC_OR_DESC | String | 索引排序规则中所用的顺序。可以是下列值之一: A(升序) D(降序) NULL(不适用) SQL Server 始终返回“A”。 |
CARDINALITY | int | 表中的行数或索引中的唯一值个数。 |
PAGES | int | 用于存储索引或表的页数。 |
FILTER_CONDITION | String | 筛选条件。 SQL Server 始终返回 Null。 |
有关 getIndexInfo 方法返回的数据的详细信息,请参阅 SQL Server 联机丛书中的“sp_indexes (Transact-SQL)”。
示例
下例演示了如何使用 getIndexInfo 方法返回 SQL Server 2005AdventureWorks 示例数据库中的 Person.Contact 表的索引信息和统计信息。
public static void executeGetIndexInfo(Connection con) { try { DatabaseMetaData dbmd = con.getMetaData(); ResultSet rs = dbmd.getIndexInfo("AdventureWorks", "Person", "Contact", false, true); ResultSetMetaData rsmd = rs.getMetaData(); // Display the result set data. int cols = rsmd.getColumnCount(); while(rs.next()) { for (int i = 1; i <= cols; i++) { System.out.println(rs.getString(i)); } } rs.close(); } catch (Exception e) { e.printStackTrace(); } }