Index 정보를 조회하여 하나의 컬럼에 Key 컬럼을 ','로 구분하여 출력하는 쿼리 입니다.
실행 결과)
쿼리)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
select ta.table_name
, index_name, max(tb.constraint_type) INDEX_DESCRIPTION
, concat_ws(', ', max(col_1), max(col_2), max(col_3), max(col_4), max(col_5)
, max(col_6), max(col_7), max(col_8), max(col_9), max(col_10)) INDEX_KEYS
from (
select table_schema, `table_name`
, (CONSTRAINT_NAME) INDEX_NAME
, ('') INDEX_DESCRIPTION
, (case ordinal_position when 1 then column_name else null end) col_1
, (case ordinal_position when 2 then column_name else null end) col_2
, (case ordinal_position when 3 then column_name else null end) col_3
, (case ordinal_position when 4 then column_name else null end) col_4
, (case ordinal_position when 5 then column_name else null end) col_5
, (case ordinal_position when 6 then column_name else null end) col_6
, (case ordinal_position when 7 then column_name else null end) col_7
, (case ordinal_position when 8 then column_name else null end) col_8
, (case ordinal_position when 9 then column_name else null end) col_9
, (case ordinal_position when 10 then column_name else null end) col_10
from information_schema.KEY_COLUMN_USAGE
where table_schema = 'db_schema' and `table_name` like '%info%'
) ta
left join information_schema.table_constraints tb
on ta.table_schema = tb.table_schema and ta.`table_name` = tb.`table_name` and ta.index_name = tb.constraint_name
group by ta.table_name, index_name
order by ta.table_name, index_name asc
;
|
cs |
'Database & Data > MYSQL' 카테고리의 다른 글
MySQL DB-Link 구현을 위한 FEDERATED 엔진 활성화 및 테이블 생성 (2) | 2020.08.14 |
---|---|
MySQL / MariaDB Slow Query Log 활성화 및 로그를 테이블에 기록 (0) | 2020.07.07 |
MySQL 복원 (0) | 2020.02.22 |
조회 결과를 CSV 파일로 출력 (0) | 2017.12.30 |
Raspberry 에서 사용하는 MariaDB 백업 Shell Script 입니다. (0) | 2017.11.03 |