In questo articolo descrivo due modi per restituire un elenco di indici in un database SQLite.
Il primo (e più ovvio) metodo consiste nell'usare .indexes
comando punto. Il secondo metodo consiste nell'interrogare sql_master tabella.
Il comando .indexes
Ecco un esempio di utilizzo di .indexes
comando sul database di esempio Chinook.
.indexes
Risultato:
IFK_AlbumArtistId IFK_PlaylistTrackTrackIdIFK_CustomerSupportRepId IFK_TrackAlbumIdIFK_EmployeeReportsTo IFK_TrackGenreIdIFK_InvoiceCustomerId IFK_TrackMediaTypeIdIFK_InvoiceLineInvoiceId sqlite_autoindex_PlaylistTrack_1IFK_InvoiceLinepreTrackId >Puoi anche fornire un argomento per specificare quale indice/indici desideri vengano restituiti. Puoi fornire il nome completo dell'indice oppure puoi utilizzare la corrispondenza del modello per restituire tutti gli indici che corrispondono a quel modello.
Esempio di utilizzo del pattern matching:
.indexes %invoice%
Risultato:
IFK_InvoiceCustomerId IFK_InvoiceLineInvoiceId IFK_InvoiceLineTrackIdIl tavolo sqlite_master
In alternativa al
.indexes
comando, puoi eseguire una query su sql_master tavolo.Questa tabella contiene più di semplici indici, ma puoi usare un
WHERE
clausola per restringerla ai soli indici:SELECT name FROM sqlite_master WHERE type = 'index';
Risultato:
IFK_AlbumArtistIdsqlite_autoindex_PlaylistTrack_1IFK_CustomerSupportRepIdIFK_EmployeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineTrackIdIFK_PlaylistTrackTrackIdIFK_TrackAlbumIdIFK_TrackGenreIdIFK_TrackMediaTypeIdUn vantaggio dell'utilizzo di questo metodo è che puoi anche restituire la tabella a cui appartiene ogni indice. Questo è memorizzato in tbl_name colonna.
Esempio:
.mode column .headers on .width 32 13 SELECT name, tbl_name FROM sqlite_master WHERE type = 'index';
Ritorno:
nome tbl_name -------------------------------- ------------- IFK_AlbumArtistId Album sqlite_autoindex_PlaylistTrack_1 PlaylistTrackIFK_CustomerSupportRepId Customer IFK_EmployeeReportsTo Employee IFK_InvoiceCustomerId Invoice IFK_InvoiceLineInvoiceId InvoiceLine IFK_InvoiceLineTrackId InvoiceLine IFK_PlaylistTrackTrackId PlaylistTrackIFK_TrackAlbumId Track IFK_TrackGenreId Track IFK_TrackMediaTypeId Track