In dit artikel schets ik twee manieren om een lijst met indexen in een SQLite-database te retourneren.
De eerste (en meest voor de hand liggende) methode is het gebruik van de .indexes
punt commando. De tweede methode is het opvragen van de sql_master tafel.
Het .indexes-commando
Hier is een voorbeeld van het gebruik van de .indexes
commando in de Chinook-voorbeelddatabase.
.indexes
Resultaat:
IFK_AlbumArtistId IFK_PlaylistTrackTrackIdIFK_CustomerSupportRepId IFK_TrackAlbumIdIFK_EmployeeReportsTo IFK_TrackGenreIdIFK_InvoiceCustomerId IFK_TrackMediaTypeIdIFK_InvoiceLineTrack_1U kunt ook een argument opgeven om aan te geven welke index(en) u wilt retourneren. U kunt de volledige naam van de index opgeven of u kunt patroonovereenkomst gebruiken om alle indexen te retourneren die overeenkomen met dat patroon.
Voorbeeld van het gebruik van patroonherkenning:
.indexes %invoice%
Resultaat:
IFK_InvoiceCustomerId IFK_InvoiceLineInvoiceId IFK_InvoiceLineTrackIdDe sqlite_master-tabel
Als alternatief voor de
.indexes
commando, kunt u een query uitvoeren op de sql_master tafel.Deze tabel bevat meer dan alleen indexen, maar u kunt een
WHERE
. gebruiken clausule om het te beperken tot alleen indexen:SELECT name FROM sqlite_master WHERE type = 'index';
Resultaat:
IFK_AlbumArtistIdsqlite_autoindex_PlaylistTrack_1IFK_CustomerSupportRepIdIFK_EmployeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineTrackIdIFK_PlaylistTrackTrackIdIFKGen_Track_AlbrackIdMediaEen voordeel van het gebruik van deze methode is dat u ook de tabel kunt retourneren waartoe elke index behoort. Dit wordt opgeslagen in de tbl_name kolom.
Voorbeeld:
.mode column .headers on .width 32 13 SELECT name, tbl_name FROM sqlite_master WHERE type = 'index';
Retour:
naam tbl_name -------------------------------- ------------- IFK_AlbumArtistId Album sqlite_autoindex_PlaylistTrack_1 AfspeellijstTrackIFK_CustomerSupportRepId Klant IFK_EmployeeReportsTo Employee IFK_InvoiceCustomerId Invoice IFK_InvoiceLineInvoiceId InvoiceLine IFK_InvoiceLineTrackIdId Playlist_trackId_InvoiceLineTrackId