RENAME INDEX

The RENAME INDEX statement changes the name of an index for a table.

Note:
It is not possible to rename an index referenced by a view. For more details, see View Dependencies.

This schema change statement is registered as a job. You can view long-running jobs with SHOW JOBS.

Synopsis

ALTER INDEX IF EXISTS table_name @ index_name RENAME TO index_name

Required privileges

The user must have the CREATE privilege on the table.

Parameters

Parameter Description
IF EXISTS Rename the index only if an index current_name exists; if one does not exist, do not return an error.
table_name The name of the table with the index you want to use
index_name The current name of the index
name The name you want to use for the index, which must be unique to its table and follow these identifier rules.

Example

Rename an Index

icon/buttons/copy
> SHOW INDEXES FROM users;
+------------+------------+------------+--------------+-------------+-----------+---------+----------+
| table_name | index_name | non_unique | seq_in_index | column_name | direction | storing | implicit |
+------------+------------+------------+--------------+-------------+-----------+---------+----------+
| users      | primary    |   false    |            1 | id          | ASC       |  false  |  false   |
| users      | name_idx   |    true    |            1 | name        | ASC       |  false  |  false   |
| users      | name_idx   |    true    |            2 | id          | ASC       |  false  |   true   |
+------------+------------+------------+--------------+-------------+-----------+---------+----------+
(3 rows)
icon/buttons/copy
> ALTER INDEX users@name_idx RENAME TO users_name_idx;
icon/buttons/copy
> SHOW INDEXES FROM users;
+------------+----------------+------------+--------------+-------------+-----------+---------+----------+
| table_name |   index_name   | non_unique | seq_in_index | column_name | direction | storing | implicit |
+------------+----------------+------------+--------------+-------------+-----------+---------+----------+
| users      | primary        |   false    |            1 | id          | ASC       |  false  |  false   |
| users      | users_name_idx |    true    |            1 | name        | ASC       |  false  |  false   |
| users      | users_name_idx |    true    |            2 | id          | ASC       |  false  |   true   |
+------------+----------------+------------+--------------+-------------+-----------+---------+----------+
(3 rows)

See also

YesYes NoNo