In diesem Artikel skizziere ich zwei Möglichkeiten, um eine Liste von Indizes in einer SQLite-Datenbank zurückzugeben.
Die erste (und offensichtlichste) Methode ist die Verwendung von .indexes
Punkt-Befehl. Die zweite Methode besteht darin, den sql_master abzufragen Tabelle.
Der .indexes-Befehl
Hier ist ein Beispiel für die Verwendung von .indexes
Befehl in der Chinook-Beispieldatenbank.
.indexes
Ergebnis:
IFK_AlbumArtistId IFK_PlaylistTrackTrackIdIFK_CustomerSupportRepId IFK_TrackAlbumIdIFK_EmployeeReportsTo IFK_TrackGenreIdIFK_InvoiceCustomerId IFK_TrackMediaTypeIdIFK_InvoiceLineInvoiceId sqlite_autoindex_PlaylistTrack_1IFK_InvoiceLineTrackId
Sie können auch ein Argument angeben, um anzugeben, welche(n) Index(e) Sie zurückgeben möchten. Sie können den vollständigen Namen des Indexes angeben oder den Musterabgleich verwenden, um alle Indizes zurückzugeben, die diesem Muster entsprechen.
Beispiel für die Verwendung des Musterabgleichs:
.indexes %invoice%
Ergebnis:
IFK_InvoiceCustomerId IFK_InvoiceLineInvoiceId IFK_InvoiceLineTrackId
Die sqlite_master-Tabelle
Als Alternative zu den .indexes
Befehl können Sie eine Abfrage für den sql_master ausführen Tisch.
Diese Tabelle enthält mehr als nur Indizes, aber Sie können ein WHERE
verwenden -Klausel, um sie auf Indizes einzugrenzen:
SELECT name
FROM sqlite_master
WHERE type = 'index';
Ergebnis:
IFK_AlbumArtistIdsqlite_autoindex_PlaylistTrack_1IFK_CustomerSupportRepIdIFK_EmployeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineTrackIdIFK_PlaylistTrackTrackIdIFK_TrackAlbumIdIFK_TrackGenreIdIFK_TrackMediaTypeId
Ein Vorteil dieser Methode besteht darin, dass Sie auch die Tabelle zurückgeben können, zu der jeder Index gehört. Diese wird im tbl_name gespeichert Spalte.
Beispiel:
.mode column
.headers on
.width 32 13
SELECT
name,
tbl_name
FROM sqlite_master
WHERE type = 'index';
Zurück:
name tbl_name ---------------------------- ------------- IFK_AlbumArtistId Album sqlite_autoindex_PlaylistTrack_1 PlaylistTrackIFK_CustomerSupportRepId Kunde IFK_EmployeeReportsTo Employee IFK_InvoiceCustomerId Invoice IFK_InvoiceLineInvoiceId InvoiceLine IFK_InvoiceLineTrackId InvoiceLine IFK_PlaylistTrackTrackId PlaylistTrackIFK_TrackAlbumId Track IFK_TrackGenreId Track IFK_TrackMediaTypeI