commands - ¿Hay un SQLite equivalente a la DESCRIBE[tabla] de MySQL?
sqlite3 bash commands (5)
Estoy empezando a aprender SQLite . Sería bueno poder ver los detalles de una tabla, como DESCRIBE [table]
MySQL. PRAGMA table_info [table]
no es lo suficientemente bueno, ya que solo tiene información básica (por ejemplo, no muestra si una columna es un campo de algún tipo o no). ¿SQLite tiene una manera de hacer esto?
¿Estás buscando el SQL utilizado para generar una tabla? Para eso, puedes consultar la tabla 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)
La utilidad de línea de comandos SQLite tiene un comando .schema TABLENAME
que le muestra las instrucciones de creación.
Para evitar que las personas sean engañadas por algunos de los comentarios a las otras respuestas:
- Si
.schema
o laquery from sqlite_master
noquery from sqlite_master
ningún resultado, indica que no existe un nombre detablename
, por ejemplo, esto también puede ser causado por un;
punto y coma al final para.schema
,.tables
, ... O simplemente porque la tabla realmente no existe. Es poco.schema
que el.schema
no funcione y luego se debe presentar un informe de error en el proyecto sqlite.
... .schema solo se puede utilizar desde una línea de comando; los comandos anteriores> se pueden ejecutar como una consulta a través de una biblioteca (Python, C #, etc.). - Mark Rushakoff 25 de julio de 2010 a las 21:09
- ''solo se puede usar desde una línea de comando'' puede confundir a las personas. Casi cualquier lenguaje de programación (¿probablemente todos?) Puede llamar a otros programas / comandos. Por lo tanto, el comentario citado es desafortunado, ya que llamar a otro programa, en este caso
sqlite
, es más probable que se admita que el lenguaje proporciona unwrapper
/library
para cada programa (que no solo es propenso a ser incompleto por la naturaleza misma de las masas de programas por ahí, pero también es unsingle-source principle
acciónsingle-source principle
acción contraria, que complica elmaintenance
, fomentando el caos de los datos en el mundo).
(Ponga como respuesta sin permiso para comentar aún).
Para ver todas las tablas:
.tables
Para ver una tabla en particular:
.schema [tablename]
PRAGMA table_info([tablename]);