Comment peut-on voir la structure d'une table en SQLite? [dupliquer]

cette question a déjà une réponse ici:

Comment puis-je voir la structure de la table dans SQLite comme desc était dans Oracle?

201
demandé sur Peter Mortensen 2011-01-11 09:16:06

9 réponses

invoque l'utilitaire sqlite3 sur le fichier de base de données, et utilise ses commandes de points spéciales:

  • .tables liste des tables
  • .schema [tablename] affichera L'énoncé créer pour une ou plusieurs tables

il y a beaucoup d'autres commandes de point intégrées utiles -- voir la documentation à http://www.sqlite.org/sqlite.html , section special commands to sqlite3 .

exemple:

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);

Notez aussi que SQLite sauvegarde le schéma et toutes les informations sur les tables dans la base de données elle-même, dans une table magique nommée sqlite_master , et il est également possible d'exécuter des requêtes SQL normales contre cette table. Par exemple, le lien de documentation ci-dessus montre comment dériver le comportement des commandes .schema et .tables , en utilisant des commandes SQL normales (voir section: interrogation du schéma de la base de données ).

265
répondu metamatt 2017-01-18 09:47:32
PRAGMA table_info(table_name);

cela fonctionnera à la fois pour: ligne de commande et lorsqu'il est exécuté contre une base de données connectée.

330
répondu AnonGeek 2015-05-20 11:13:41

vous pouvez interroger sqlite_master

SELECT sql FROM sqlite_master WHERE name='foo';

qui renvoie une instruction create table SQL, par exemple:

$ 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
30
répondu Micha Wiedenmann 2018-07-14 13:21:31

.schema TableName

où TableName est le nom de la Table

15
répondu Abi 2011-01-11 06:20:40

vous devriez pouvoir voir le schéma en exécutant

.schema <table>
11
répondu Costa Walcott 2011-01-11 06:19:20

, Vous obtiendrez la structure en tapant la commande:

.schema <tableName>
11
répondu aTJ 2011-01-11 06:21:44

si vous utilisez PHP vous pouvez l'obtenir de cette façon:

<?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();
?>
4
répondu Gil 2016-05-26 20:39:53

vous pouvez utiliser L'add-on de Firefox appelé SQLite Manager pour voir la structure de la base de données clairement.

0
répondu Jack 2018-08-30 14:28:06

j'ai implémenté un analyseur de schéma de table SQLite en PHP. Vous pouvez vérifier ici: j'ai mis en œuvre un SQLite table parser

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

la syntaxe suit la syntaxe de la table SQLite create: http://www.sqlite.org/lang_createtable.html

-1
répondu c9s 2017-05-13 11:11:09