如何在SQLite多数据库环境中仅获取单个数据库的所有表
多SQLite连接下只查单个数据库表的解决办法
- 问题根源:同时连接多个SQLite数据库时,游标必须和对应数据库的连接绑定。你之前用错了游标对象,导致查询返回了所有连接库的表。
- 代码错误修正:把
Mcur=con.cursor()改成Mcur=Mcon.cursor()——Mcon是你连接Master_Database_try的连接实例,con是连接Nested_Database_try的实例,游标必须和目标数据库的连接一一对应。 - 正确查询方式:使用对应数据库的游标执行查询,就能只获取该库的表:
- 查询
Master_Database_try的所有表:Mcur.execute("SELECT name FROM sqlite_master WHERE type='table';") master_db_tables = Mcur.fetchall() - 查询
Nested_Database_try的所有表:cur.execute("SELECT name FROM sqlite_master WHERE type='table';") nested_db_tables = cur.fetchall()
WHERE type='table'可以过滤掉视图、索引等非表对象,让结果更精准。 - 查询
内容的提问来源于stack exchange,提问作者Jahan Zabe
相关产品推荐
相关产品推荐

