如何列出SQLite中特定表的所有可用视图?

我想访问Sqlite中任何特定表的所有特定视图。 我知道我可以使用sqlite_master获取数据库中所有可用表的列表

SELECT name from sqlite_master WHERE type='table'; 

以及所有可用视图的列表

SELECT name from sqlite_master WHERE type ='view';

但我想查找特定表格的所有可用视图。 我怎么做 ?


无需使用extension-functions.c; 只需使用“LIKE”运算符即可:

SELECT name FROM sqlite_master WHERE type = 'view' and sql LIKE "%_tablename_%";

当然,如果表名包含其他表名称作为子字符串,或者是普通SQL保留字(如“here”或“rom”)的子字符串,则会得到错误匹配。 您可以通过以下方式消除后者:

SELECT name FROM sqlite_master WHERE type = 'view' AND sql LIKE "% FROM %tablename% WHERE %";

提供您正在尝试查看的视图符合典型模型。


使用extension-functions.c中的charindex函数在sqlite_master的Sql列中搜索表名。

extension-functions.c (查看本页底部)是一个用户提供的模块,它使用可加载扩展机制为SQL查询提供数学和字符串扩展函数。

您的最终查询应该看起来像这样(未测试):

SELECT name from sqlite_master 
  WHERE type ='view' AND charindex(Sql, "tableName") > 0;
链接地址: http://www.djcxy.com/p/43493.html

上一篇: How do I list all the available views of a particular table in SQLite?

下一篇: How can I loop through a subset of worksheets?