如何使用Python的sqlite3访问附加数据库中的表?
问题解决:SQLite附加数据库后查询表报错“不存在该表”
错误原因
你查询附加数据库表的SQL语句存在错误。要获取附加数据库中的表列表,必须指定该数据库下的sqlite_master系统表,而非直接使用数据库名称。你的代码中执行SELECT name FROM {db_2_name} WHERE type='table';时,SQLite会将db2识别为表名去查找,因此触发“不存在该表”的报错。
修正后的代码
将查询附加数据库表的语句修改为:
tables = cursor.execute(f"SELECT name FROM {db_2_name}.sqlite_master WHERE type='table';").fetchall() print(tables)
额外说明
后续查询附加数据库内的具体表数据时,同样需要使用数据库名.表名的格式来指定,示例:
# 查询db2数据库内test_table表的数据 data = cursor.execute("SELECT * FROM db2.test_table;").fetchall()
内容的提问来源于stack exchange,提问作者SomeRandomPhysicist
相关产品推荐
相关产品推荐

