MySQL Alter Table Statement Exercises: Drop the index indx_job_id from job_history table
MySQL Alter Table Statement: Exercise-15 with Solution
Write a MySQL statement to drop the index indx_job_id from job_history table.
Here is the structure of the job_history and index file of the table job_history.
mysql> SHOW COLUMNS FROM job_history; +---------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+---------+------+-----+---------+-------+ | EMPLOYEE_ID | int(11) | NO | PRI | NULL | | | START_DATE | date | YES | | NULL | | | HIRE_DATE | date | YES | | NULL | | | JOB_ID | int(11) | NO | MUL | NULL | | | DEPARTMENT_ID | int(11) | NO | | NULL | | +---------------+---------+------+-----+---------+-------+ mysql> SHOW INDEXES FROM job_history; +-------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | +-------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | job_history | 0 | PRIMARY | 1 | EMPLOYEE_ID | A | 0 | NULL | NULL | | BTREE | | | job_history | 1 | indx_job_id | 1 | JOB_ID | A | 0 | NULL | NULL | | BTREE | | +-------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------++
Code:
-- This SQL statement is used to alter the 'job_history' table by dropping (removing) an existing index.
-- The index named 'indx_job_id' is being removed.
ALTER TABLE job_history
-- Drop the index named 'indx_job_id' from the 'job_history' table.
DROP INDEX indx_job_id;
Let execute the above code in MySQL command prompt
Now see the structure of the table job_history after being altered.
mysql> SHOW COLUMNS FROM job_history; +---------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+---------+------+-----+---------+-------+ | EMPLOYEE_ID | int(11) | NO | PRI | NULL | | | START_DATE | date | YES | | NULL | | | HIRE_DATE | date | YES | | NULL | | | JOB_ID | int(11) | NO | | NULL | | | DEPARTMENT_ID | int(11) | NO | | NULL | | +---------------+---------+------+-----+---------+-------+
Now see the index file.
mysql> SHOW INDEXES FROM job_history; +-------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | +-------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | job_history | 0 | PRIMARY | 1 | EMPLOYEE_ID | A | 0 | NULL | NULL | | BTREE | | +-------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
Explanation:
Here's a brief explanation of the above MySQL code:
- ALTER TABLE job_history: This part of the statement indicates that you want to make changes to the structure of the 'job_history' table.
- DROP INDEX indx_job_id;: It drops (removes) the index named 'indx_job_id' from the 'job_history' table. The 'indx_job_id' is the name of the index created earlier.
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a SQL statement to add an index named indx_job_id on job_id column in the table job_history.
Next: Basic SELECT statement
What is the difficulty level of this exercise?
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics