SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Liệt kê tất cả các Chỉ mục trong Cơ sở dữ liệu SQLite

Trong bài viết này, tôi phác thảo hai cách để trả về danh sách các chỉ mục trong cơ sở dữ liệu SQLite.

Phương pháp đầu tiên (và rõ ràng nhất) là sử dụng .indexes lệnh chấm. Phương pháp thứ hai là truy vấn sql_master bảng.

Lệnh .indexes

Đây là một ví dụ về việc sử dụng .indexes trên cơ sở dữ liệu mẫu Chinook.

 .indexes 

Kết quả:

 IFK_AlbumArtistId IFK_PlaylistTrackTrackIdIFK_CustomerSupportRepId IFK_TrackAlbumIdIFK_EFasteeReportsTo IFK_TrackGenreIdIFK_InvoiceCustomerId IFK_TrackMediaIdIFK_EFasteeReportsTo IFK_TrackGenreIdIFK_InvoiceCustomerId IFK_TrackMediaTvoiceIdlistIdlistInIF 

Bạn cũng có thể cung cấp một đối số để chỉ định chỉ mục / chỉ mục nào bạn muốn trả về. Bạn có thể cung cấp tên đầy đủ của chỉ mục hoặc bạn có thể sử dụng đối sánh mẫu để trả về tất cả các chỉ mục phù hợp với mẫu đó.

Ví dụ về việc sử dụng đối sánh mẫu:

 .indexes %invoice% 

Kết quả:

 IFK_InvoiceCustomerId IFK_InvoiceLineInvoiceId IFK_InvoiceLineTrackId 

Bảng sqlite_master

Thay thế cho .indexes , bạn có thể chạy truy vấn đối với sql_master bàn.

Bảng này không chỉ chứa các chỉ mục mà bạn có thể sử dụng WHERE để thu hẹp nó xuống chỉ các chỉ mục:

 SELECT name 
FROM sqlite_master 
WHERE type = 'index'; 

Kết quả:

 IFK_AlbumArtistIdsqlite_autoindex_PlaylistTrack_1IFK_CustomerSupportRepIdIFK_EmpleteeeReportsToIFK_InvoiceCustomerIdIFK_InvoiceLineInvoiceIdIFK_InvoiceLineTrackIdIFK_InvoiceLineTrackIdIFckTenedia_TrackIdIFckTenedia_TrackIdIFckTenedia_TrackIdIFckTenedia 

Một lợi ích của việc sử dụng phương pháp này là bạn cũng có thể trả về bảng mà mỗi chỉ mục thuộc về. Điều này được lưu trữ trong tbl_name cột.

Ví dụ:

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

Trở lại:

 tên 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. group_concat và cách sử dụng số hàng trong sqlite

  2. Cơ sở dữ liệu SQLite đưa ra cảnh báo chỉ mục tự động trên <table_name> (cột) Sau khi nâng cấp Android L

  3. Sự cố SQLite của Android - bảng ... không có cột nào được đặt tên

  4. Tìm nạp dữ liệu từ sql databse trong flashing datewise?

  5. Kiểm tra đơn vị cơ sở dữ liệu SQLite của Android