Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQLite中列出特定表的所有可用视图?_Sql_Database_Sqlite_Sqlitejdbc - Fatal编程技术网

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

如何在SQLite中列出特定表的所有可用视图?,sql,database,sqlite,sqlitejdbc,Sql,Database,Sqlite,Sqlitejdbc,我想访问Sqlite中任何特定表的所有特定视图。我知道我可以使用sqlite_master获取数据库中所有可用表的列表 SELECT name from sqlite_master WHERE type='table'; 以及使用的所有可用视图的列表 SELECT name from sqlite_master WHERE type ='view'; 但是我想找到特定表的所有可用视图。我该怎么做 使用extension functions.c中的charindex函数在sqlite\u m

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

SELECT name from sqlite_master WHERE type='table'; 
以及使用的所有可用视图的列表

SELECT name from sqlite_master WHERE type ='view';

但是我想找到特定表的所有可用视图。我该怎么做

使用extension functions.c中的
charindex
函数在
sqlite\u master
中的Sql列中搜索表名

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

您的最终查询应该如下所示(未经测试):


不需要使用扩展函数;只需使用“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 %";
提供您试图找到的视图符合典型模型

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