Я только начинаю изучать SQLite. Было бы неплохо видеть детали таблицы, например MySQL DESCRIBE [table]
. PRAGMA table_info [table]
недостаточно хорош, так как он имеет только базовую информацию (например, он не показывает, является ли столбец каким-то полем или нет). Есть ли у SQLite способ сделать это?
утилита командной строки SQLite имеет команду .schema TABLENAME
, которая показывает вам операторы create.
PRAGMA table_info([tablename]);
.schema tablename
для меня.
Вы ищете SQL, который используется для создания таблицы? Для этого вы можете запросить таблицу sqlite_master
:
sqlite> CREATE TABLE foo (bar INT, quux TEXT);
sqlite> SELECT * FROM sqlite_master;
table|foo|foo|2|CREATE TABLE foo (bar INT, quux TEXT)
sqlite> SELECT sql FROM sqlite_master WHERE name = 'foo';
CREATE TABLE foo (bar INT, quux TEXT)
.schema foo
?
.schema
можно использовать только из командной строки; Вышеуказанные команды могут быть запущены как запрос через библиотеку (Python, C # и т. д.).
Чтобы просмотреть все таблицы:
.tables
Чтобы увидеть конкретную таблицу:
.schema [tablename]
Чтобы люди не ошиблись в комментариях к другим ответам:
.schema
или query from sqlite_master
не выдаёт никакого вывода, это указывает на несуществующий tablename
, например. это также может быть вызвано точкой с запятой ;
в конце для .schema
, .tables
,... Или просто потому, что таблица действительно не существует.
То, что .schema
просто не работает, маловероятно, и тогда в проекте sqlite должен быть отправлен отчет об ошибке.....схема может использоваться только из командной строки; приведенные выше команды > могут выполняться как запрос через библиотеку (Python, С# и т.д.). - Марк Рушаков Jul 25 '10 в 21:09
sqlite
, скорее всего, будет поддерживаться, чем тот, который предоставляет wrapper
/library
для каждой программы (что не только подвержено незавершенности сама природа масс программ там, но и противодействует single-source principle
, усложняя maintenance
, способствуя хаосу данных в мире).(Поставьте в качестве ответа, поскольку пока не разрешено прокомментировать.)