java如何获取数据库表的索引以及区分唯一索引和全文索引

问题描述 投票:0回答:1

我想获取数据库表的所有信息来生成DDL语句,但是没有办法判断索引是否是全文索引。

    // 获取连接
    Connection conn = sqlSessionFactory.openSession().getConnection();
    // 获取元数据
    DatabaseMetaData metaData = conn.getMetaData();
    String catalog = conn.getCatalog();
    String schema = conn.getSchema();
    ResultSet rs = metaData.getIndexInfo(catalog, schema, tableName, false, false);
    String indexName = rs.getString("INDEX_NAME");
    String columnName = rs.getString("COLUMN_NAME");
    boolean unique = rs.getBoolean("NON_UNIQUE");
    int type = rs.getShort("TYPE");
java mysql database indexing ddl
1个回答
0
投票
SELECT * FROM mysql.innodb_index_stats
    WHERE table_name = 'mytablename';

然后看看它的

index_name
是否为
FTS_DOC_ID_INDEX
stat_description
FTS_DOC_ID

(适用于 MySQL 8.0;我不知道旧版本或 MariaDB 是否有效。)

© www.soinside.com 2019 - 2024. All rights reserved.