DROP INDEX はインデックスを削除するSQL文です。
-- MySQLなどの場合 DROP INDEX インデックス名 ON テーブル名; -- Oracle、PostgreSQLなどの場合 DROP INDEX インデックス名;
利用するDBMSによって多少構文ルールに差がありますが、考え方は一緒です。
参考 DBMSとは?
このページでは初心者向けにDROP TABLEの利用方法を1分でわかりやすく解説します。
プログラマーやエンジニアを目指す方であれば知らないと恥ずかしい基本知識の1つ。是非最後までご覧ください。
前提として「インデックスとは何か?」を知りたい方は以下のページをご覧ください。
DROP INDEX:インデックスの削除
DROP INDEXの構文ルールは以下の通りです。
-- MySQLなどの場合 DROP INDEX インデックス名 ON テーブル名; -- OracleやPostgreSQLなどの場合 DROP INDEX インデックス名;
DROP INDEXの後に削除したいインデックス名を記述するだけ。
今回サンプルとして利用するMySQLなどの場合は、インデックス名とテーブル名を指定します。
MySQLではインデックスの管理がテーブル単位であるためです。(OracleやPostgreSQLなどの場合は、インデックスはデータベース単位。)
DROP INDEX のサンプルコードがこちら。
/* 削除前(わかりやすいように一部省略して表示) +------------+------------+----------+-------------+------+------------+ | Table | Non_unique | Key_name | Column_name | Null | Index_type | +------------+------------+----------+-------------+------+------------+ | sample_tbl | 1 | idx_1 | ID | YES | BTREE | | sample_tbl | 1 | idx_2 | AAA | YES | BTREE | | sample_tbl | 1 | idx_2 | BBB | YES | BTREE | | sample_tbl | 1 | idx_2 | EEE | YES | BTREE | +------------+------------+----------+-------------+------+------------+ */ -- インデックス(idx_1)を削除 DROP INDEX idx_1 ON sample_tbl; /* 削除後(インデックス「idx_1」が削除されている) +------------+------------+----------+-------------+------+------------+ | Table | Non_unique | Key_name | Column_name | Null | Index_type | +------------+------------+----------+-------------+------+------------+ | sample_tbl | 1 | idx_2 | AAA | YES | BTREE | | sample_tbl | 1 | idx_2 | BBB | YES | BTREE | | sample_tbl | 1 | idx_2 | EEE | YES | BTREE | +------------+------------+----------+-------------+------+------------+ */
ALTER文を利用したインデックス削除
インデックスを削除したい場合は、ALTER TABLE文を利用することもできます。
構文ルール
-- インデックスの削除 ALTER TABLE テーブル名 DROP INDEX インデックス名;
サンプルコード
/* インデックス定義を表示(変更前) +------------+------------+----------+-------------+------+------------+ | Table | Non_unique | Key_name | Column_name | Null | Index_type | +------------+------------+----------+-------------+------+------------+ | sample_tbl | 1 | idx_1 | ID | YES | BTREE | | sample_tbl | 1 | idx_2 | AAA | YES | BTREE | | sample_tbl | 1 | idx_2 | BBB | YES | BTREE | | sample_tbl | 1 | idx_2 | EEE | YES | BTREE | +------------+------------+----------+-------------+------+------------+ */ -- インデックス(idx_1)の削除 ALTER TABLE sample_tbl DROP INDEX idx_1; /* インデックス定義を表示(ide_1)が削除されている +------------+------------+----------+-------------+------+------------+ | Table | Non_unique | Key_name | Column_name | Null | Index_type | +------------+------------+----------+-------------+------+------------+ | sample_tbl | 1 | idx_2 | AAA | YES | BTREE | | sample_tbl | 1 | idx_2 | BBB | YES | BTREE | | sample_tbl | 1 | idx_2 | EEE | YES | BTREE | +------------+------------+----------+-------------+------+------------+ */
SQLを1から学習したい方は
SQLやデータベースの仕組みを1から学習したい方(学び直したい方)向けに、現役エンジニア達のスキルを結集して 完全無料 のSQL教材を作成しました。
SQLは決して難しい技術ではないので、エンジニアであれば「当たり前のように」扱えて当然かも・・・?
とはいえ、案外SQLをちゃんと使ったことがない人も多いはずです。この機会に是非一度ご覧になってみてください。