Aller au contenu

CREATE INDEX / DROP INDEX#

courant

Syntaxe#

CREATE [UNIQUE] INDEX [IF NOT EXISTS] nom_index
ON table (colonne [ASC|DESC], ...)
[WHERE condition];

DROP INDEX [IF EXISTS] nom_index;

Exemples#

CREATE INDEX idx_nom ON etudiants(nom);
CREATE UNIQUE INDEX idx_email ON etudiants(email);
CREATE INDEX idx_ville_nom ON etudiants(ville_id, nom);   -- index composite
DROP INDEX idx_nom;

Index partiel avancé#

CREATE INDEX idx_actifs ON etudiants(nom) WHERE actif = 1;

Index sur expression avancé#

CREATE INDEX idx_upper_nom ON etudiants(UPPER(nom));

Utilisable seulement si la requête emploie exactement la même expression (WHERE UPPER(nom) = 'ALICE').

SQLite

Index partiels et index sur expressions sont supportés nativement (≥ 3.8.0 / ≥ 3.9.0). Voir aussi PRAGMA index_list et Bonnes pratiques — Indexation.