MySQL スキーマ内に存在する全ての索引を一括で抽出するSQL
mysql でテーブルの索引がどう設定されているのか知りたいときがあると思うのですが。その場合、
mysql> show index from TABLE_NAME;
で確認できます
でわ、スキーマ内の全てのテーブルの索引を抜き出したい場合はどうするか? というわけでinformation_schemaを利用して対象データベースに登録されている全ての索引を一括で抽出するSQLを考えてみました。 索引の情報は、information_schema.STATISTICSに格納されているらしく、以下のSQLで確認できました。
【季節性インフルエンザ予防にも】 TANITA デジタル温湿度計 (室内用 / 置き式) ブルー TT-549-BL
- 出版社/メーカー: タニタ(TANITA)
- 発売日: 2011/10/20
- メディア: ホーム&キッチン
- クリック: 4回
- この商品を含むブログ (1件) を見る
索引一覧抽出SQL
mysql> SELECT TABLE_SCHEMA, TABLE_NAME, INDEX_NAME, COLUMN_NAME, SEQ_IN_INDEX FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = 'データベース名' ORDER BY TABLE_SCHEMA,TABLE_NAME,INDEX_NAME,SEQ_IN_INDEX -- INTO OUTFILE "/tmp/index_list.csv" -- FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; ;