Syntax พื้นฐาน
ALTER TABLE your_table_name DROP INDEX `your_index_name`;
ใช้ backtick (`) ครอบชื่อดัชนีกรณีมีช่องว่างหรือคีย์เวิร์ด
ตัวอย่างทีละขั้นตอน
1. สร้างตาราง
mysql> CREATE TABLE DemoTable1469 (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName VARCHAR(40),
StudentAge INT
);
2. เพิ่ม Index บนคอลัมน์ StudentName
mysql> CREATE INDEX `Student Name_Index` ON DemoTable1469 (StudentName);
3. ตรวจสอบโครงสร้าง (ก่อนลบ)
mysql> DESC DemoTable1469;
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| StudentId | int(11) | NO | PRI | NULL | auto_increment |
| StudentName | varchar(40) | YES | MUL | NULL | |
| StudentAge | int(11) | YES | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
เห็น Key = MUL แสดงว่ามี Index อยู่
4. ลบ Index
mysql> ALTER TABLE DemoTable1469 DROP INDEX `Student Name_Index`;
5. ตรวจสอบอีกครั้ง (หลังลบ)
mysql> DESC DemoTable1469;
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| StudentId | int(11) | NO | PRI | NULL | auto_increment |
| StudentName | varchar(40) | YES | | NULL | |
| StudentAge | int(11) | YES | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
คอลัมน์ StudentName กลายเป็น Key = (ว่าง) แสดงว่า Index ถูกลบเรียบร้อย
คำสั่งดู Index ทั้งหมดของตาราง
SHOW INDEX FROM DemoTable1469;
ใช้เพื่อยืนยันชื่อ Index ที่แน่นอนก่อนลบ
หมายเหตุ
- ไม่สามารถลบ PRIMARY KEY ด้วยคำสั่งนี้ได้ ต้องใช้
ALTER TABLE ... DROP PRIMARY KEY - การลบ Index อาจทำให้ Query ที่ขึ้นอยู่กับ Index นั้นช้าลง ควรพิจารณาก่อนลบ