Zum Inhalt springen

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 EXISTS hat 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 andere IF 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.