В тази статия очертавам два начина за връщане на списък с индекси в база данни на SQLite.
Първият (и най-очевиден) метод е да използвате .indexes
команда точка. Вторият метод е да отправите заявка към sql_master таблица.
Командата .indexes
Ето пример за използване на .indexes
команда в примерната база данни на Chinook.
.indexes
Резултат:
IFK_AlbumArtistId IFK_PlaylistTrackTrackIdIFK_CustomerSupportRepId IFK_TrackAlbumIdIFK_EmployeeReportsTo IFK_TrackGenreIdIFK_InvoiceCustomerId IFKpe_TrackMediaInvoiceCustomerId IFKpe_TrackMediaInvoiceId IFKpe_TrackMediaInvoiceIdInvoice_TrackMediaIndexInvoice_TrackInvoiceIdInvoice_TrackInvoiceIdInvoice_TrackInvoiceIdInvoice_TrackInvoiceIdInvoice.Можете също да предоставите аргумент, за да посочите кои индекси/индекси искате да бъдат върнати. Можете да предоставите пълното име на индекса или можете да използвате съвпадение на шаблон, за да върнете всички индекси, които съответстват на този модел.
Пример за използване на съвпадение на шаблон:
.indexes %invoice%
Резултат:
IFK_InvoiceCustomerId IFK_InvoiceLineInvoiceId IFK_InvoiceLineTrackIdТаблицата sqlite_master
Като алтернатива на
.indexes
команда, можете да изпълните заявка към sql_master маса.Тази таблица съдържа повече от просто индекси, но можете да използвате
WHERE
клауза, за да го стесните само до индекси:SELECT name FROM sqlite_master WHERE type = 'index';
Резултат:
IFK_AlbumArtistIdsqlite_autoindex_PlaylistTrack_1IFK_CustomerSupportRepIdIFK_EmployeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineTrackIdIFK_PlaylistTrackTrackIdIFK_TrackAlbumIdIFK_TrackGenreIdIFK_TrackMediaTypeIdЕдно предимство от използването на този метод е, че можете също да върнете таблицата, към която принадлежи всеки индекс. Това се съхранява в tbl_name колона.
Пример:
.mode column .headers on .width 32 13 SELECT name, tbl_name FROM sqlite_master WHERE type = 'index';
Връщане:
name 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