Estoy buscando recuperar una lista de columnas en una tabla. La base de datos es la última versión de SQLite (3.6, creo). Estoy buscando un código que hace esto con una consulta SQL. Puntos de bonificación extra para metadatos relacionados con las columnas (por ejemplo, longitud, tipo de datos, etc.)¿Cómo puedo obtener la lista de columnas en una tabla para una base de datos SQLite?
Respuesta
Lo que está buscando se llama diccionario de datos. En sqlite una lista de todas las tablas se puede encontrar mediante la consulta de la tabla sqlite_master
sqlite> create table people (first_name varchar, last_name varchar, email_address varchar);
sqlite> select * from sqlite_master;
table|people|people|2|CREATE TABLE people (first_name varchar, last_name varchar, email_address varchar)
Para obtener información de la columna se puede utilizar el pragma table_info(table_name)
declaración (o ver?):
sqlite> pragma table_info(people);
0|first_name|varchar|0||0
1|last_name|varchar|0||0
2|email_address|varchar|0||0
Para obtener más información sobre el pragma declaraciones, vea el documentation.
acaba de entrar en su concha sqlite:
$ sqlite3 path/to/db.sqlite3
y luego acaba de golpear
sqlite> .schema
y obtendrá todo.
Aquí es la forma más sencilla:
.schema <table>
Esto realmente debería ser la respuesta. –
@EhteshChoudhury no, no debería, la pregunta pide una consulta SQL y esta no es una. – jazzpi
La pregunta es antiguo, pero los siguientes no se ha mencionado todavía.
Otra forma conveniente en muchos casos es convertir los encabezados de por:
sqlite> .headers on
Entonces,
sqlite> SELECT ... FROM table
mostrará un titular que muestra todos los campos seleccionados (todo si selecciona *) en el parte superior de la salida.
Sobre la base de lo anterior, se puede hacer todo a la vez:
sqlite3 yourdb.db ".schema"
que le dará el código SQL para crear la tabla, que es efectivamente una lista de las columnas.
Lo sé, ha pasado mucho tiempo pero nunca es demasiado tarde ... Tuve una pregunta similar con TCL como intérprete y después de varias búsquedas, no encontré nada bueno para mí. Por eso propongo algo basado en PRAGMA, sabiendo que su base de datos es “principal”
db eval { PRAGMA main.table_info(<your table name>) } TBL { puts $TBL(name) }
Y el uso matriz para obtener una lista
set col_list {}
db eval { PRAGMA main.table_info(<your table name>) } TBL { lappend col_list $TBL(name) }
puts $col_list
- 1. ¿Cómo obtener la lista de tablas secundarias para una tabla de base de datos?
- 2. Devuelve todas las columnas de una tabla SQLite en Android
- 3. ¿Cómo puedo obtener una lista de tablas en una base de datos de Access (Jet)?
- 4. ¿Cómo puedo obtener la intercalación de una tabla específica en una base de datos?
- 5. ¿Cómo puedo obtener una visión general rápida sobre una estructura de tabla en SQLite?
- 6. ¿Cómo puedo crear una base de datos sqlite en memoria?
- 7. Android - ¿Existe una base de datos SQLite?
- 8. SQLite - ordenando una tabla
- 9. Obtener lista de columnas calculadas en tabla de base de datos (SQL Server)
- 10. cómo obtener el valor de la base de datos a una matriz de cadenas en Android (base de datos SQLite)
- 11. ¿Cómo eliminar una fila en una tabla de base de datos sqlite?
- 12. ¿Puedo encriptar la base de datos SQLite?
- 13. problema con la base de datos sqlite, sin tabla:
- 14. Obtener ID de fila de una tabla SQLite FTS3
- 15. En Java, ¿cómo puedo eliminar una tabla sqlite?
- 16. ¿Puedo bloquear una tabla SQLite para el hilo actual?
- 17. ¿Cómo crear una tabla en una base de datos particular?
- 18. ¿Cómo deshacerse de múltiples columnas en una base de datos?
- 19. Cómo copiar una tabla de una base de datos mysql a otra base de datos mysql
- 20. Usando SchemaSpy para visualizar una base de datos SQLite (windows)
- 21. Cómo copiar datos de una base de datos/tabla a otra base de datos/tabla
- 22. Insertar .csvs en una base de datos SQLite en Java
- 23. manteniendo una tabla de registro en la base de datos sqlite?
- 24. ¿Cómo puedo obtener los nombres de campo de una tabla de base de datos?
- 25. Obtener lista de nombres de columna de una tabla vacía
- 26. ¿Cómo puedo usar dapper para conectarme a una base de datos sqlite?
- 27. ¿Cómo implementar una base de datos SQLite en Phonegap?
- 28. ¿Cómo debo proteger una base de datos SQLite en iOS?
- 29. ¿cómo consulto la base de datos SQLite con dos condiciones?
- 30. R: ¿cómo eliminar columnas en una tabla de datos?
Gran! Ahora, ¿cómo se hace esto desde fuera de la línea de comando? ¿Cómo se hace esto desde mi propio programa C? –
cómo puedo implementar lo mismo que el anterior en Objective-c –
@Nag, creo que SQLite debería tratar estos comandos como SQL ordinario, procesarlos en consecuencia y devolverle un conjunto de resultados. –