Эти .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';
Для списка таблиц, можно также сделать:
SELECT name FROM sqlite_master
WHERE type='table';
Существует команда, доступная для этого на командной строке 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
".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);
Для показа всех таблиц используйте
SELECT name FROM sqlite_master WHERE type = "table"
Для показа всех строк, я предполагаю, что можно выполнить итерации через все таблицы и просто сделать ВЫБОР * на каждом. Но возможно ДАМП - то, что Вы после?
Кажется, что необходимо пройти таблица sqlite_master , как это:
SELECT * FROM dbname.sqlite_master WHERE type='table';
И затем вручную проходят каждую таблицу с SELECT
или подобный для рассмотрения строк.
.DUMP
и .SCHEMA
команды, кажется, не видит базу данных вообще.
Существует несколько шагов для наблюдения таблиц в базе данных SQLite:
Список таблицы в Вашей базе данных:
.tables
Список, как таблица смотрит:
.schema tablename
Печать вся таблица:
SELECT * FROM tablename;
Список все доступные SQLite запрашивают команды:
.help
Самый легкий способ сделать это должно открыть базу данных непосредственно и использовать эти .dump
команда, вместо того, чтобы присоединить его после вызова SQLite 3 инструмента оболочки.
Так... (принимают, Ваше приглашение командной строки ОС является $) вместо $sqlite3
:
sqlite3> ATTACH database.sqlite as "attached"
Из Вашей командной строки ОС, откройте базу данных непосредственно:
$sqlite3 database.sqlite
sqlite3> .dump
onreadystatechanged
будет только стрелять в тайм-аут, аварийное прекращение работы и успешный сделанный запрос. Это won' t стреляют в блоки.
– phil pirozhkov
5 September 2012 в 23:00
Попробуйте PRAGMA table_info (имя-таблицы);
http://www.sqlite.org/pragma.html#schema