Как составить список таблиц в файле базы данных SQLite, который был открыт с помощью ATTACH?

1127
задан izb 1 March 2019 в 11:19
поделиться

9 ответов

Эти .tables, и .schema функции "помощника" не изучают ПРИЛОЖЕННЫЕ базы данных: они просто запрашивают SQLITE_MASTER таблица для "основной" базы данных. Следовательно, если бы Вы использовали

ATTACH some_file.db AS my_db;

тогда, то необходимо сделать

SELECT name FROM my_db.sqlite_master WHERE type='table';

Примечание, которое временные таблицы не разоблачают с .tables также: необходимо перечислить sqlite_temp_master для этого:

SELECT name FROM sqlite_temp_master WHERE type='table';
535
ответ дан Anthony Williams 1 March 2019 в 11:19
поделиться

Для списка таблиц, можно также сделать:

SELECT name FROM sqlite_master
WHERE type='table';
36
ответ дан Eugene Yarmash 1 March 2019 в 11:19
поделиться

Существует команда, доступная для этого на командной строке SQLite:

.tables ?PATTERN?      List names of tables matching a LIKE pattern

, Который преобразовывает в следующий SQL:

SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1
40
ответ дан Peter Mortensen 1 March 2019 в 11:19
поделиться

".schema" коммандос перечислит доступные таблицы и их строки путем показа Вам, оператор раньше составлял, сказали таблицы:

sqlite> create table_a (id int, a int, b int);
sqlite> .schema table_a
CREATE TABLE table_a (id int, a int, b int);
5
ответ дан 1 March 2019 в 11:19
поделиться

Для показа всех таблиц используйте

SELECT name FROM sqlite_master WHERE type = "table"

Для показа всех строк, я предполагаю, что можно выполнить итерации через все таблицы и просто сделать ВЫБОР * на каждом. Но возможно ДАМП - то, что Вы после?

154
ответ дан Christian Davén 1 March 2019 в 11:19
поделиться

Кажется, что необходимо пройти таблица sqlite_master , как это:

SELECT * FROM dbname.sqlite_master WHERE type='table';

И затем вручную проходят каждую таблицу с SELECT или подобный для рассмотрения строк.

.DUMP и .SCHEMA команды, кажется, не видит базу данных вообще.

434
ответ дан ann 1 March 2019 в 11:19
поделиться

Существует несколько шагов для наблюдения таблиц в базе данных SQLite:

  1. Список таблицы в Вашей базе данных:

    .tables
    
  2. Список, как таблица смотрит:

    .schema tablename
    
  3. Печать вся таблица:

    SELECT * FROM tablename;
    
  4. Список все доступные SQLite запрашивают команды:

    .help
    
1240
ответ дан Tuan Dang 1 March 2019 в 11:19
поделиться

Самый легкий способ сделать это должно открыть базу данных непосредственно и использовать эти .dump команда, вместо того, чтобы присоединить его после вызова SQLite  3 инструмента оболочки.

Так... (принимают, Ваше приглашение командной строки ОС является $) вместо $sqlite3:

sqlite3> ATTACH database.sqlite as "attached"

Из Вашей командной строки ОС, откройте базу данных непосредственно:

$sqlite3 database.sqlite
sqlite3> .dump
12
ответ дан Peter Mortensen 1 March 2019 в 21:19
поделиться
  • 1
    onreadystatechanged будет только стрелять в тайм-аут, аварийное прекращение работы и успешный сделанный запрос. Это won' t стреляют в блоки. – phil pirozhkov 5 September 2012 в 23:00

Попробуйте PRAGMA table_info (имя-таблицы);
http://www.sqlite.org/pragma.html#schema

31
ответ дан 19 December 2019 в 20:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: