ссылка является функциональной, однако я не уверен, почему кто-то использовал бы синтаксический анализатор PHP, когда уже есть встроенная команда.

от вопрос уже есть ответ здесь:

Есть ли SQLite, эквивалентный MySQL DESCRIBE [таблица]? 5 ответов

Как я могу увидеть структуру таблицы вSQLite какdesc был в Oracle?

Ответы на вопрос(9)

проверить здесь: я реализовал анализатор таблиц sqlite

https://github.com/maghead/sqlite-parser

Синтаксис соответствует синтаксису оператора создания таблицы SQLite:http://www.sqlite.org/lang_createtable.html

 jmercouris29 июл. 2018 г., 00:20
ссылка является функциональной, однако я не уверен, почему кто-то использовал бы синтаксический анализатор PHP, когда уже есть встроенная команда.
 Luis Siquot21 сент. 2016 г., 18:19
ссылка не работает, она все еще существует?
Решение Вопроса

sqlite3 утилиту для файла базы данных, и используйте ее специальные точечные команды:

.tables будет перечислять таблицы.schema [tablename] покажет оператор CREATE для таблицы или таблиц

Есть много других полезных встроенных точечных команд - см. Документацию наhttp://www.sqlite.org/sqlite.html, разделСпециальные команды для sqlite3.

Пример:

sqlite> entropy:~/Library/Mail>sqlite3 Envelope\ Index
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
addresses              ews_folders            subjects
alarms                 feeds                  threads
associations           mailboxes              todo_notes
attachments            messages               todos
calendars              properties             todos_deleted_log
events                 recipients             todos_server_snapshot
sqlite> .schema alarms
CREATE TABLE alarms (ROWID INTEGER PRIMARY KEY AUTOINCREMENT, alarm_id,
                     todo INTEGER, flags INTEGER, offset_days INTEGER,
                     reminder_date INTEGER, time INTEGER, argument,
                     unrecognized_data BLOB);
CREATE INDEX alarm_id_index ON alarms(alarm_id);
CREATE INDEX alarm_todo_index ON alarms(todo);

Также обратите внимание, что SQLite сохраняет схему и всю информацию о таблицах в самой базе данных в волшебной таблице с именемsqlite_masterи также возможно выполнить нормальные SQL-запросы к этой таблице. Например, приведенная выше ссылка на документацию показывает, как определить поведение.schema а также.tables команды, использующие обычные команды SQL (see section:Запрос схемы базы данных).

 abbood26 июн. 2013 г., 07:12
Одна из распространенных ошибок - путаница этих служебных функций с операторами SQL. Первая не требует; в конце команды, где, как последний делает.
 LarsH22 авг. 2018 г., 05:11
@Blago: Несмотря на то, что EXPLAIN QUERY PLAN показывает автоиндекс на моей таблице, PRAGMA table_info (имя_таблицы) не показывает автоиндекс. Однако я думаю, что это должно быть потому, что sqlite «создал автоматический индекс, который длится только в течение одного оператора SQL». (sqlite.org/optoverview.html#automatic_indexes)
 kkurian24 янв. 2015 г., 23:07
не работает для меня, но ответ AnonGeek делает
 pratnala13 мар. 2014 г., 19:08
Не показывает мне индекс, хотя у меня есть первичный ключ на двух столбцах вместе
 Blago30 янв. 2015 г., 10:50
.tables и .schema отображают только «исходные операторы CREATE TABLE и CREATE INDEX». Любые последующие изменения НЕ будут отражены. Вы должны действительно использовать PRAGMA table_info (table_name) вместо этого.

Вы можете запроситьsqlite_master

SELECT sql FROM sqlite_master WHERE name='foo';

который вернетcreate table Оператор SQL, например:

$ sqlite3 mydb.sqlite
sqlite> create table foo (id int primary key, name varchar(10));
sqlite> select sql from sqlite_master where name='foo';
CREATE TABLE foo (id int primary key, name varchar(10))

sqlite> .schema foo
CREATE TABLE foo (id int primary key, name varchar(10));

sqlite> pragma table_info(foo)
0|id|int|0||1
1|name|varchar(10)|0||0
 RDP10 янв. 2017 г., 03:06
Просто упомянуть, что, похоже, также работает SQL: SELECT sql FROM sqlite_master WHERE tbl_name = 'foo';

Вы получите структуру, набрав команду:

.schema <tableName>
PRAGMA table_info(table_name);

так и при выполнении с подключенной базой данных.

Ссылка для более подробной информации и примера. СпасибоSQLite Pragma Command

 Irongaze.com30 окт. 2012 г., 18:01
+1 для SQL, который будет работать в командной строке или при выполнении с подключенной базой данных.
 Mangala Edirisinghe30 окт. 2013 г., 08:27
выполнять.header on перед выполнением вышеуказанной команды. Вы можете просматривать столбцы с данными.
 paddy01 мая 2017 г., 07:49
Если вы хотите получить информацию о таблице для прикрепленной базы данных 'foo', вы запускаетеPRAGMA foo.table_info(table_name);
 UnknownJoe14 янв. 2014 г., 09:56
Такая несправедливость! Это лучший ответ, несмотря на то, что команда .schema тоже очень полезна.
 Blago30 янв. 2015 г., 10:51
Это должен быть принятый ответ. .tables и .schema отображают только «исходные операторы CREATE TABLE и CREATE INDEX». Любые последующие изменения НЕ будут отражены.

.

Где TableName - это имя таблицы

Вы должны увидеть схему, запустив

.schema <table>

SQLite Manager ясно просматривать структуру базы данных.

Если вы используете PHP, вы можете получить его следующим образом:

<?php
    $dbname = 'base.db';
    $db = new SQLite3($dbname);
    $sturturequery = $db->query("SELECT sql FROM sqlite_master WHERE name='foo'");

    $table = $sturturequery->fetchArray();
    echo '<pre>' . $table['sql'] . '</pre>';

    $db->close();
?>

Ваш ответ на вопрос