SQLite
 sql >> база данни >  >> RDS >> SQLite

Избройте всички индекси в база данни на SQLite

В тази статия очертавам два начина за връщане на списък с индекси в база данни на 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 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да съхранявате sqlite база данни директно на sdcard

  2. sqlite get поле с повече от 2 MB

  3. SQLite Къде

  4. Форматирайте числа със запетая в SQLite

  5. Оператор