El comando "pragma table_info ('tablename')" enumera la información de las columnas y "pragma foreign_key_list ('tablename')" las claves foráneas. ¿Cómo puedo mostrar otras restricciones (verificación, único) de una tabla? ¿Solo se analiza el campo "sql" de la tabla "sqlite_master"?¿Hay alguna manera de obtener las restricciones de una tabla en SQLite?
11
A
Respuesta
6
Creo que la única manera es hacer esto es la forma en que sugirió, analizar la columna sql de la base de datos sqlite_master.
códigoPython para hacer esto:
import sqlite3
con = sqlite3.connect("example.sqlite3")
cur = con.cursor()
cur.execute("select sql from sqlite_master where type='table' and name='example_table'")
schema = cur.fetchone()
con.close()
entries = [ tmp.strip() for tmp in schema[0].splitlines() if tmp.find("constraint")>=0 or tmp.find("unique")>=0 ]
for i in entries: print(i)
3
También hay pragma index_list('tablename')
+7
No todos los índices son restricciones, y no todas las restricciones son índices. –
Cuestiones relacionadas
- 1. ¿Hay alguna manera de obtener PartionKeys distintas de una Tabla
- 2. ¿Hay alguna manera de poner relaciones/restricciones en CSS?
- 3. ¿Hay alguna manera de obtener todas las variables en Ruby?
- 4. ¿Hay alguna manera de implementar restricciones en las clases de tipos de Haskell?
- 5. Mostrar las restricciones en una tabla
- 6. ¿Hay alguna manera más rápida de iterar a través de las filas de la consulta Sqlite?
- 7. Obtener ID de fila de una tabla SQLite FTS3
- 8. SQLite - ordenando una tabla
- 9. ¿Hay alguna manera de ver las relaciones en Oracle SQL Developer?
- 10. ¿Hay alguna manera fácil de obtener ServerName en Symfony?
- 11. ¿Hay alguna manera de obtener un REPL en pydev?
- 12. ¿Hay alguna manera de obtener datos ortográficos de un NSString?
- 13. ¿Hay alguna manera de desactivar una etiqueta?
- 14. Oracle: ¿Hay alguna manera de obtener los tipos de datos de columna para una vista?
- 15. ¿Hay alguna manera fácil de obtener sombras en OpenGL?
- 16. ¿Hay alguna manera de usar una construcción para cada una para una tabla de guayaba?
- 17. ¿Hay alguna manera de obtener una advertencia sobre las funciones no utilizadas?
- 18. ¿Hay alguna manera fácil de obtener programáticamente el alfabeto?
- 19. ¿Hay alguna manera de pausar una CABasicAnimation?
- 20. ¿Cómo puedo eliminar todas las restricciones de restricciones predeterminadas en una tabla
- 21. ¿Hay alguna manera de "limpiar" una superficie?
- 22. ¿Hay alguna API C SQLite para citar/escapar del nombre de una tabla?
- 23. ¿Hay alguna forma de activar/desactivar restricciones en db2 v7?
- 24. ¿Hay alguna manera de limitar las longitudes vline en ggplot2?
- 25. MySQL: ¿cómo puedo ver TODAS las restricciones en una tabla?
- 26. ¿Hay alguna manera de activar mousemove y obtener event.pageX, event.pageY?
- 27. ¿Hay alguna manera de obtener el objeto predeterminado de $ .ajax?
- 28. ¿Hay alguna manera de revertir una cripta() en c?
- 29. Devuelve todas las columnas de una tabla SQLite en Android
- 30. ¿Hay alguna manera de acelerar las compilaciones de WiX?
También hay "index_list Pragma ('nombre de tabla')" Ver http://www.sqlite.org /pragma.html#pragma_index_list – Nabab
@Nabab realmente debería considerar agregar eso como una respuesta –