sql - 如何在 SQLite 中列出特定表的所有可用 View ?

标签 sql database sqlite sqlitejdbc

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

SELECT name from sqlite_master WHERE type='table'; 

以及所有可用 View 的列表,使用

SELECT name from sqlite_master WHERE type ='view';

但我想查找特定表的所有可用 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 %";

提供您要查找的 View 符合典型模型。

关于sql - 如何在 SQLite 中列出特定表的所有可用 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591405/

相关文章:

mysql - 我如何在 SQL 中使用 LIKE 函数而不是一个确切的词?

mysql - 仅使用一张表来存储多种类型的关系,是否高效?

mysql - CakePhp,获取 Containable 中的总行数

android - 如何在/data/data/package-name/app_database/in android中创建数据库

MySQL 5.7 GENERATED ALWAYS 列定义为子查询

mysql - 更改表上的 auto_increment 值的过程

python - 使用变音符号在 SQLite3 中排序

android - 使用 Android 搜索对话框搜索多个数据库列

mysql - 是否可以为特定列值设置 mysql 唯一索引?

SQL 查询以查找在某个科目注册的学生总数