Подтвердить что ты не робот

Есть ли способ получить ограничения таблицы в SQLite?

Команда pragma table_info ('tablename') "отображает информацию о столбцах и" pragma foreign_key_list ('tablename') "внешние ключи. Как отображать другие ограничения (проверить, уникально) таблицы? Только разбор поля "sql" таблицы "sqlite_master"?

4b9b3361

Ответ 1

Я думаю, что единственный способ сделать это - это то, как вы предложили, проанализировать столбец sql базы данных sqlite_master.

Код 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)