Ответ 1
утилита командной строки SQLite имеет команду .schema TABLENAME
, которая показывает вам операторы create.
Я только начинаю изучать SQLite. Было бы неплохо видеть детали таблицы, например MySQL DESCRIBE [table]
. PRAGMA table_info [table]
недостаточно хорош, так как он имеет только базовую информацию (например, он не показывает, является ли столбец каким-то полем или нет). Есть ли у SQLite способ сделать это?
утилита командной строки SQLite имеет команду .schema TABLENAME
, которая показывает вам операторы create.
PRAGMA table_info([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)
Чтобы просмотреть все таблицы:
.tables
Чтобы увидеть конкретную таблицу:
.schema [tablename]
Чтобы не вводить людей в заблуждение некоторыми комментариями к другим ответам:
.schema
или query from sqlite_master
не дает никаких выходных данных, это указывает на несуществующее имя tablename
, например, это также может быть вызвано a ;
точка с запятой в конце для .schema
, .tables
,... или просто потому, что таблицы действительно не существует. То, что .schema
просто не работает, очень маловероятно, и тогда отчет об ошибках должен быть подан в проект sqlite.....schema можно использовать только из командной строки; вышеуказанные команды> могут быть запущены как запрос через библиотеку (Python, С# и т.д.). - Марк Рушаков 25 июля 2010 года в 21:09
sqlite
, с большей вероятностью будет поддерживаться, чем то, что язык предоставляет wrapper
/library
для каждой программы (которая не только подвержена неполноте из-за самой природы масс программы там, но также противодействует single-source principle
, усложняя maintenance
, продвигая хаос данных в мире).