2012-03-09 94 views
11

命令“pragma table_info('tablename')”列出了外键的列信息和“pragma foreign_key_list('tablename')”。 如何显示表格的其他约束(检查,唯一)? 只解析表“sqlite_master”的字段“sql”?有没有办法在SQLite中获取表的约束?

+2

还有 “语法索引 - 目录( '表名')” 见http://www.sqlite.org /pragma.html#pragma_index_list – Nabab 2013-02-13 01:02:01

+0

@Nabab您应该真的考虑将其添加为答案 – 2013-10-26 20:36:23

回答

6

我认为唯一的办法就是这样做,就是你建议的方式,解析sqlite_master数据库的sql列。

Python代码做到这一点:

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) 
相关问题