DROP INDEX — Supprimer un index
DROP INDEX [ IF EXISTS ]nom
[, ...] [ CASCADE | RESTRICT ] DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ]nom
[, ...] [ CASCADE | RESTRICT ]
DROP INDEX
supprime un index. Seul le propriétaire de l'index
peut exécuter cette commande.
CONCURRENTLY
Supprime l'index sans verrouiller les lectures et les modifications
(insertions, modifications, suppressions) sur la table de l'index.
Un DROP INDEX
standard acquiert un verrou de type
ACCESS EXCLUSIVE
sur la table, bloquant tous les autres accès jusqu'à ce que la suppression
de l'index soit terminée. Avec cette option, la commande attends que toute
transaction en conflit soit terminée.
Cette option pose quelques soucis. Un seul index peut être indiqué, et
l'option CASCADE
n'est pas autorisée. (Du coup, un
index qui renforce une contrainte UNIQUE
ou
PRIMARY KEY
ne peut pas être supprimée ainsi.)
De plus, les commandes DROP INDEX
standards sont
exécutées dans un bloc de transaction, mais
DROP INDEX CONCURRENTLY
ne le peut pas.
Enfin, les index sur des tables partitionnées ne peuvent pas être
supprimés en utilisant cette option.
Pour les tables temporaires, DROP INDEX
est toujours
non concurrent car aucune autre session n'y a accès, et la suppression
d'index non concurrent est moins coûteuse.
IF EXISTS
Ne pas renvoyer d'erreur si l'index n'existe pas. Un message d'information est envoyé dans ce cas.
nom
Le nom (éventuellement qualifié du nom du schéma) de l'index à supprimer.
CASCADE
Les objets qui dépendent de l'index sont automatiquement supprimés, ainsi que tous les objets dépendants de ces objets (voir Section 5.14).
RESTRICT
L'index n'est pas supprimé si un objet en dépend. Comportement par défaut.
Supprimer l'index title_idx
:
DROP INDEX title_idx;
DROP INDEX
est une extension
PostgreSQL.
Il n'est pas fait mention des index dans le standard SQL.