SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Daftar semua Indeks dalam Database SQLite

Dalam artikel ini saya menguraikan dua cara untuk mengembalikan daftar indeks dalam database SQLite.

Metode pertama (dan paling jelas) adalah dengan menggunakan .indexes perintah titik. Metode kedua adalah menanyakan sql_master tabel.

Perintah .indexes

Berikut ini contoh penggunaan .indexes perintah pada database sampel Chinook.

.indexes 

Hasil:

IFK_AlbumArtistId IFK_PlaylistTrackTrackIdIFK_CustomerSupportRepId IFK_TrackAlbumIdIFK_EmployeeReportsKe IFK_TrackGenreIdIFK_InvoiceCustomerId IFK_TrackMediaTypeIdIFK_InvoiceLine_InvoiceLineIndeksIdIFK_Trackite_InvoiceLineInvoice 

Anda juga dapat memberikan argumen untuk menentukan indeks/indeks mana yang ingin Anda kembalikan. Anda dapat memberikan nama lengkap indeks atau Anda dapat menggunakan pencocokan pola untuk mengembalikan semua indeks yang cocok dengan pola tersebut.

Contoh penggunaan pencocokan pola:

.indexes %invoice% 

Hasil:

IFK_InvoiceCustomerId IFK_InvoiceLineInvoiceId IFK_InvoiceLineTrackId 

Tabel sqlite_master

Sebagai alternatif dari .indexes perintah, Anda dapat menjalankan kueri terhadap sql_master meja.

Tabel ini berisi lebih dari sekadar indeks, tetapi Anda dapat menggunakan WHERE klausa untuk mempersempitnya menjadi hanya indeks:

SELECT name 
FROM sqlite_master 
WHERE type = 'index'; 

Hasil:

IFK_AlbumArtistIdsqlite_autoindex_PlaylistTrack_1IFK_CustomerSupportRepIdIFK_EmployeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineTrackIdIFK_PlaylistTrackTrackIdIFK_TrackIdAlbumIdpreK_TrackIdAlbumId 

Salah satu manfaat menggunakan metode ini adalah Anda juga dapat mengembalikan tabel tempat setiap indeks berada. Ini disimpan di tbl_name kolom.

Contoh:

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

Kembali:

nama 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. Tabel tidak dibuat sqlite android

  2. Praktik terbaik untuk bekerja dengan banyak tabel

  3. 2 Cara Mengaktifkan Bungkus Kata di SQLite

  4. SQLite Listview onclick memfilter db untuk membuka hasil dalam aktivitas baru

  5. Apa tujuan dari fungsi String[] whereArgs int delete (String table, String whereClause, String[] whereArgs)?