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