SQLite Indexed By

Die Klausel "INDEXED BY index-name" legt fest, dass der benannte Index verwendet werden muss, um Werte in der vorangehenden Tabelle nachzuschlagen.

Wenn der Indexname index-name nicht existiert oder nicht für die Abfrage verwendet werden kann, schlägt die Vorbereitung der SQLite-Anweisung fehl.

Die Klausel "NOT INDEXED" legt fest, dass beim Zugriff auf die vorangehende Tabelle kein Index verwendet wird (einschließlich impliziter Indizes, die durch UNIQUE- und PRIMARY KEY-Constraints erstellt wurden).

Wenn jedoch "NOT INDEXED" angegeben ist, kann INTEGER PRIMARY KEY weiterhin verwendet werden, um Einträge nachzuschlagen.

Syntax

Das Folgende ist die Syntax der INDEXED BY-Klausel, die mit DELETE-, UPDATE- oder SELECT-Anweisungen verwendet werden kann:

SELECT|DELETE|UPDATE column1, column2...
INDEXED BY (index_name)
table_name
WHERE (CONDITION);

Beispiel

Angenommen, es gibt eine Tabelle COMPANY; wir erstellen einen Index und verwenden ihn, um eine INDEXED BY-Operation durchzuführen.

sqlite> CREATE INDEX salary_index ON COMPANY(salary);
sqlite>

Verwenden Sie nun die INDEXED BY-Klausel, um Daten aus der Tabelle COMPANY auszuwählen, wie unten gezeigt:

sqlite> SELECT * FROM COMPANY INDEXED BY salary_index WHERE salary > 5000;
Andere Erweiterungen