如何使用python删除sqlite3中的所有表?

如何使用python删除sqlite3中的所有表?,python,sqlite,Python,Sqlite,我做了一个项目,从用户那里收集数据并存储在不同的表上,应用程序有一个删除功能,第一个选项是删除一个我已经做过的特定表,第二个选项是删除所有现有表 如何删除数据库中的所有表 这就是我的变量 conn = sqlite3.connect('main.db') cursor = conn.execute("DROP TABLE") cursor.close() 如何删除数据库中的所有表 据 SQLite允许您一次只删除一个表。删除多个 表,您需要发出多个

我做了一个项目,从用户那里收集数据并存储在不同的表上,应用程序有一个删除功能,第一个选项是删除一个我已经做过的特定表,第二个选项是删除所有现有表

如何删除数据库中的所有表

这就是我的变量

    conn = sqlite3.connect('main.db')
    cursor = conn.execute("DROP TABLE")

    cursor.close()
如何删除数据库中的所有表

SQLite允许您一次只删除一个表。删除多个 表,您需要发出多个
DROP TABLE
语句


可以通过查询所有表名()

然后可以使用结果逐个删除表

这是代码,函数
delete\u all\u tables
可以做到这一点

TABLE_PARAMETER = "{TABLE_PARAMETER}"
DROP_TABLE_SQL = f"DROP TABLE {TABLE_PARAMETER};"
GET_TABLES_SQL = "SELECT name FROM sqlite_schema WHERE type='table';"


def delete_all_tables(con):
    tables = get_tables(con)
    delete_tables(con, tables)


def get_tables(con):
    cur = con.cursor()
    cur.execute(GET_TABLES_SQL)
    tables = cur.fetchall()
    cur.close()
    return tables


def delete_tables(con, tables):
    cur = con.cursor()
    for table, in tables:
        sql = DROP_TABLE_SQL.replace(TABLE_PARAMETER, table)
        cur.execute(sql)
    cur.close()

您是否考虑使用SqLalCimy来建模数据库?这样做可以方便地使用数据库,包括db.drop\u all(和create\u all),但也可以方便地进行查询。您可以删除数据库并重新创建它,而不是删除所有表。