On this page
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.Synopsis
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
> SHOW INDEXES FROM users;
+-------+----------------+--------+-----+--------+-----------+---------+----------+
| Table | Name | Unique | Seq | Column | Direction | Storing | Implicit |
+-------+----------------+--------+-----+--------+-----------+---------+----------+
| users | primary | true | 1 | id | ASC | false | false |
| users | users_name_idx | false | 1 | name | ASC | false | false |
| users | users_name_idx | false | 2 | id | ASC | false | true |
+-------+----------------+--------+-----+--------+-----------+---------+----------+
(3 rows)
> ALTER INDEX users@users_name_idx RENAME TO name_idx;
RENAME INDEX
> SHOW INDEXES FROM users;
+-------+----------+--------+-----+--------+-----------+---------+----------+
| Table | Name | Unique | Seq | Column | Direction | Storing | Implicit |
+-------+----------+--------+-----+--------+-----------+---------+----------+
| users | primary | true | 1 | id | ASC | false | false |
| users | name_idx | false | 1 | name | ASC | false | false |
| users | name_idx | false | 2 | id | ASC | false | true |
+-------+----------+--------+-----+--------+-----------+---------+----------+
(3 rows)