CREATE INDEX-Anweisung
CREATE INDEX
Die CREATE INDEX-Anweisung erzeugt einen Index auf der/den angegebenen Spalte(n) der angegebenen Tabelle.
Beispiele
Einen eindeutigen Index films_id_idx auf der Spalte id der Tabelle films anlegen:
CREATE UNIQUE INDEX films_id_idx ON films (id);Den Index s_idx anlegen, der doppelte Werte in der Spalte revenue der Tabelle films zulässt:
CREATE INDEX s_idx ON films (revenue);Einen Index anlegen, falls er noch nicht existiert:
CREATE INDEX IF NOT EXISTS s_idx ON films (revenue);Die Anweisung
CREATE INDEX IF NOT EXISTShat derzeit keinen „Early Exit“, sondern versucht, den Index zu erzeugen, und prüft erst vor dem Commit in den Speicher, ob er bereits existiert. Daher kann sie länger laufen als andereIF NOT EXISTS-Anweisungen, die früh abbrechen.
Einen zusammengesetzten Index gy_idx auf den Spalten genre und year anlegen:
CREATE INDEX gy_idx ON films (genre, year);Den Index i_index auf dem Ausdruck der Summe der Spalten j und k der Tabelle integers anlegen:
CREATE INDEX i_index ON integers ((j + k));Parameter
| Name | Beschreibung |
|---|---|
UNIQUE |
Veranlasst das System, beim Anlegen des Index (falls bereits Daten vorhanden sind) und bei jedem Hinzufügen von Daten auf doppelte Werte in der Tabelle zu prüfen. Versuche, Daten einzufügen oder zu aktualisieren, die zu doppelten Einträgen führen würden, erzeugen einen Fehler. |
name |
Der Name des anzulegenden Index. |
table |
Der Name der zu indizierenden Tabelle. |
column |
Der Name der zu indizierenden Spalte. |
expression |
Ein Ausdruck auf Basis einer oder mehrerer Spalten der Tabelle. Der Ausdruck muss in der Regel in Klammern geschrieben werden, wie in der Syntax gezeigt. Die Klammern können weggelassen werden, wenn der Ausdruck die Form eines Funktionsaufrufs hat. |
index type |
Angegebener Indextyp, siehe Indexes. Optional. |
option |
Indexoption in Form eines booleschen true-Werts (z. B. is_cool) oder eines Schlüssel-Wert-Paars (z. B. my_option = 2). Optional. |
Syntax
DROP INDEX
DROP INDEX entfernt einen vorhandenen Index aus dem Datenbanksystem.
Beispiele
Den Index title_idx entfernen:
DROP INDEX title_idx;Parameter
| Name | Beschreibung |
|---|---|
IF EXISTS |
Keinen Fehler werfen, wenn der Index nicht existiert. |
name |
Der Name eines zu entfernenden Index. |
Syntax
Einschränkungen
Die Klausel CREATE INDEX unterstützt den Modifikator OR REPLACE nicht.