我想编写一个查询来检查 SQLite 数据库中的所有表以获取一条信息,以简化我的事件后诊断(性能并不重要)。
我希望编写一个使用 the sqlite_master table 的查询获取表列表,然后查询它们,所有这些都在一个查询中:
SELECT Name
FROM sqlite_master
WHERE Type = 'table' AND (
SELECT count(*)
FROM Name
WHERE conditions
) > 0;
但是,当尝试执行这种类型的查询时,我收到错误no such table: Name
。是否有替代语法允许这样做,或者根本不支持它?
最佳答案
SQLite 被设计为嵌入式数据库,即与“真正的”编程语言一起使用。 为了能够使用此类动态构造,您必须超越 SQLite 本身:
cursor.execute("SELECT name FROM sqlite_master")
rows = cursor.fetchall()
for row in rows:
sql = "SELECT ... FROM {} WHERE ...".format(row[0])
cursor.execute(sql)
关于sql - 是否可以在 SQLite 查询中使用返回的列值作为表名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31600700/