大家好,又见面了,我是你们的朋友全栈君。
示例
通过 DatabaseMetaData.getIndexInfo() 获取索引信息。
public static void getIndexInfo() throws Exception {
Connection conn = getConnection();
ResultSet rs = null;
try {
DatabaseMetaData dbmd = conn.getMetaData();
rs = dbmd.getIndexInfo("test", "test", "uspider_task", false, false);
ResultSetMetaData md = rs.getMetaData();
while (rs.next()) {
for (int i = 1; i <= md.getColumnCount(); i++) {
System.out.println(md.getColumnName(i) + "==" + rs.getObject(i));
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
conn.close();
}
}
输出信息如下:
TABLE_CAT==test
TABLE_SCHEM==null
TABLE_NAME==uspider_task
NON_UNIQUE==false
INDEX_QUALIFIER==
INDEX_NAME==PRIMARY
TYPE==3
ORDINAL_POSITION==1
COLUMN_NAME==task_id
ASC_OR_DESC==A
CARDINALITY==0
PAGES==0
FILTER_CONDITION==null
Api 说明
ResultSet getIndexInfo(String catalog,
String schema,
String table,
boolean unique,
boolean approximate)
throws SQLException
参数:
- catalog : 类别名称,因为存储在此数据库中,所以它必须匹配类别名称。该参数为 “” 则检索没有类别的描述,为 null 则表示该类别名称不应用于缩小搜索范围
- schema : 模式名称,因为存储在此数据库中,所以它必须匹配模式名称。该参数为 “” 则检索那些没有模式的描述,为 null 则表示该模式名称不应用于缩小搜索范围
- table : 表名称,因为存储在此数据库中,所以它必须匹配表名称
- unique : 该参数为 true 时,仅返回惟一值的索引;该参数为 false 时,返回所有索引,不管它们是否惟一
- approximate : 该参数为 true 时,允许结果是接近的数据值或这些数据值以外的值;该参数为 false 时,要求结果是精确结果
检索给定表的索引和统计信息的描述。它们根据 NON_UNIQUE、TYPE、INDEX_NAME 和 ORDINAL_POSITION 进行排序。
每个索引列描述都有以下列:
- TABLE_CAT String => 表类别(可为 null)
- TABLE_SCHEM String => 表模式(可为 null)
- TABLE_NAME String => 表名称
- NON_UNIQUE boolean => 索引值是否可以不惟一。TYPE 为 tableIndexStatistic 时索引值为 false
- INDEX_QUALIFIER String => 索引类别(可为 null);TYPE 为 tableIndexStatistic 时索引类别为 null
- INDEX_NAME String => 索引名称;TYPE 为 tableIndexStatistic 时索引名称为 null
- TYPE short => 索引类型:
- tableIndexStatistic – 此标识与表的索引描述一起返回的表统计信息
- tableIndexClustered – 此为集群索引
- tableIndexHashed – 此为散列索引
- tableIndexOther – 此为某种其他样式的索引
- ORDINAL_POSITION short => 索引中的列序列号;TYPE 为 tableIndexStatistic 时该序列号为零
- COLUMN_NAME String => 列名称;TYPE 为 tableIndexStatistic 时列名称为 null
- ASC_OR_DESC String => 列排序序列,”A” => 升序,”D” => 降序,如果排序序列不受支持,可能为 null;TYPE 为 tableIndexStatistic 时排序序列为 null
- CARDINALITY int => TYPE 为 tableIndexStatistic 时,它是表中的行数;否则,它是索引中惟一值的数量。
- PAGES int => TYPE 为 tableIndexStatisic 时,它是用于表的页数,否则它是用于当前索引的页数。
- FILTER_CONDITION String => 过滤器条件,如果有的话。(可能为 null)
返回:
- ResultSet: 每一行都是一个索引列描述
抛出: - SQLException: 如果发生数据库访问错误
想了解更多精彩内容请关注我的公众号
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150975.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...