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

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

Както при повечето неща в SQLite, има повече от един начин да получите списък с временни таблици в база данни.

Тук представям два начина за връщане на временни таблици в SQLite.

Командата .tables

Ако сте запознати с обвивката на командния ред на SQLite, тогава вероятно ще знаете за .tables команда точка. Тази команда изброява всички таблици, съответстващи на даден модел (или просто всички таблици, ако не е даден шаблон). Това включва временни таблици.

Пример:

CREATE TEMP TABLE TempProducts (id, name, price);
.tables

Резултат:

Products           temp.TempProducts  vProducts 

В този случай имам една постоянна таблица (Products ), един изглед (vProducts ) и една временна таблица (temp.TempProducts ).

Така че можете да видите, че както временните, така и постоянните таблици се връщат. Ако вашите временни таблици използват фиксирана конвенция за именуване, като например префикс, запазен само за временни таблици, можете да използвате съвпадение на шаблон, за да извлечете само временни таблици.

Пример:

.tables temp%

Резултат:

temp.TempProducts

Въпреки това, конвенциите за именуване са добри само докато всички ги спазват.

Ако не искате постоянни таблици да се връщат във вашите резултати, вероятно е по-добре да заявите sqlite_temp_master таблица (по-долу).

Таблицата sqlite_temp_master

SQLite има sqlite_temp_master таблица, която съдържа временни таблици и техните индекси и тригери. Тази таблица се вижда само от приложението, което е създало временната таблица.

Можете да направите заявка към тази таблица по следния начин:

SELECT name FROM sqlite_temp_master;

Резултат:

TempProducts

В този пример връщам само името на таблицата, но не се колебайте да използвате звездичка (* ), за да върнете всички колони.

Както споменахме, тази таблица не включва постоянни таблици. Ако трябва да върнете както временни, така и постоянни таблици и не можете да използвате .temp , можете да включите sqlite_master таблица във вашата заявка.

Пример:

SELECT name FROM 
   (SELECT * FROM sqlite_master UNION ALL
    SELECT * FROM sqlite_temp_master)
WHERE type='table'
ORDER BY name;

Резултат:

Products
TempProducts

Ако искате да включите изгледи, направете това:

SELECT name FROM 
   (SELECT * FROM sqlite_master UNION ALL
    SELECT * FROM sqlite_temp_master)
WHERE type in ('table', 'view')
ORDER BY name;

Резултат:

Products
TempProducts
vProducts

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GreenDao freemaker.jar липсва

  2. Показване на SQLite данни в RecyclerView

  3. SQLite Освен

  4. По-добре е да използвате адаптер за курсор или адаптер за масив

  5. 5 начина да стартирате SQL скрипт от файл в SQLite