How to get schema of SQLite3 table in Python
Also see How to show table schema for SQLite3 table on the command line
Use this function to find the table schema of a SQLite3 table in Python:
def sqlite_table_schema(conn, name):
"""Return a string representing the table's CREATE"""
cursor = conn.execute("SELECT sql FROM sqlite_master WHERE name=?;", [name])
sql = cursor.fetchone()[0]
cursor.close()
return sql
Usage example:
print(sqlite_table_schema(conn, 'commands'))
Full example:
#!/usr/bin/env python3
import sqlite3
conn = sqlite3.connect('/usr/share/command-not-found/commands.db')
def sqlite_table_schema(conn, name):
cursor = conn.execute("SELECT sql FROM sqlite_master WHERE name=?;", [name])
sql = cursor.fetchone()[0]
cursor.close()
return sql
print(sqlite_table_schema(conn, 'commands'))
which prints
CREATE TABLE "commands"
(
[cmdID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[pkgID] INTEGER NOT NULL,
[command] TEXT,
FOREIGN KEY ([pkgID]) REFERENCES "pkgs" ([pkgID])
)