Neste artigo, descrevo duas maneiras de retornar uma lista de índices em um banco de dados SQLite.
O primeiro (e mais óbvio) método é usar o
.indexes
comando ponto. O segundo método é consultar o sql_master tabela. O comando .indexes
Aqui está um exemplo de uso do
.indexes
comando no banco de dados de amostra Chinook. .indexes
Resultado:
IFK_AlbumArtistId IFK_PlaylistTrackTrackIdIFK_CustomerSupportRepId IFK_TrackAlbumIdIFK_EmployeeReportsTo IFK_TrackGenreIdIFK_InvoiceCustomerId IFK_TrackMediaTypeIdIFK_InvoiceLineInvoiceId sqlite_autoindex_pre>listTrack_1IFK_InvoiceLineTrackId
Você também pode fornecer um argumento para especificar quais índices/índices você gostaria que fossem retornados. Você pode fornecer o nome completo do índice ou pode usar a correspondência de padrões para retornar todos os índices que correspondem a esse padrão.
Exemplo de uso de correspondência de padrões:
.indexes %invoice%
Resultado:
IFK_InvoiceCustomerId IFK_InvoiceLineInvoiceId IFK_InvoiceLineTrackIdA tabela sqlite_master
Como alternativa ao.indexes
comando, você pode executar uma consulta no sql_master tabela.
Esta tabela contém mais do que apenas índices, mas você pode usar umWHERE
cláusula para reduzi-lo a apenas índices:
SELECT name FROM sqlite_master WHERE type = 'index';
Resultado:
IFK_AlbumArtistIdsqlite_autoindex_PlaylistTrack_1IFK_CustomerSupportRepIdIFK_EmployeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineTrackIdIFK_PlaylistTrackTrackIdIFK_TrackAlbumIdIFK_TrackGenreIdIFK_TrackMediaTypeId
Um benefício de usar esse método é que você também pode retornar a tabela à qual cada índice pertence. Isso é armazenado em tbl_name coluna.
Exemplo:
.mode column .headers on .width 32 13 SELECT name, tbl_name FROM sqlite_master WHERE type = 'index';
Retornar:
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