sql >> Databasteknik >  >> RDS >> SQLite

Lista alla index i en SQLite-databas

I den här artikeln beskriver jag två sätt att returnera en lista med index i en SQLite-databas.

Den första (och mest uppenbara) metoden är att använda .indexes punkt kommando. Den andra metoden är att fråga sql_master bord.

.indexes-kommandot

Här är ett exempel på hur du använder .indexes kommandot i Chinook-exempeldatabasen.

.indexes 

Resultat:

IFK_AlbumArtistId IFK_PlaylistTrackTrackIdIFK_CustomerSupportRepId IFK_TrackAlbumIdIFK_EmployeeReportsTo IFK_TrackGenreIdIFK_InvoiceCustomerId IFK_TrackMediaTypeIdrackLIFKiD 

Du kan också ange ett argument för att ange vilket/vilka index du vill ha tillbaka. Du kan ange det fullständiga namnet på indexet eller så kan du använda mönstermatchning för att returnera alla index som matchar det mönstret.

Exempel på användning av mönstermatchning:

.indexes %invoice% 

Resultat:

IFK_InvoiceCustomerId IFK_InvoiceLineInvoiceId IFK_InvoiceLineTrackId 

Sqlite_master-tabellen

Som ett alternativ till .indexes kommandot kan du köra en fråga mot sql_master tabell.

Den här tabellen innehåller mer än bara index, men du kan använda en WHERE klausul för att begränsa det till bara index:

SELECT name 
FROM sqlite_master 
WHERE type = 'index'; 

Resultat:

IFK_AlbumArtistIdsqlite_autoindex_PlaylistTrack_1IFK_CustomerSupportRepIdIFK_EmployeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineSupportRepIdIFK_EmployeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineTrackIdIFTK_AlbumTrackIFKI 

En fördel med att använda denna metod är att du också kan returnera tabellen som varje index tillhör. Detta lagras i tbl_name kolumn.

Exempel:

.mode column
.headers on
.width 32 13
SELECT 
  name,
  tbl_name
FROM sqlite_master 
WHERE type = 'index'; 

Retur:

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. T-SQL:Motsats till strängsammansättning - hur man delar sträng i flera poster

  2. Sammansatt primär nyckel kontra ytterligare ID-kolumn?

  3. Avbryter inaktiva mysql-anslutningar

  4. Hur man återställer MySQL-databas från .myd-, .myi-, .frm-filer