WebSQL 创建视图

Posted

技术标签:

【中文标题】WebSQL 创建视图【英文标题】:WebSQL create view 【发布时间】:2014-06-21 07:49:53 【问题描述】:

是否可以在 WebSQL 中使用视图?我认为这是因为它基本上是绝对允许它的 sqlite,但我也可能是错的。我正在尝试在我的本地 sqlite 数据库中创建一个视图,但无论我做什么它都会失败。以下是我迄今为止尝试过的一些事情;

create view my_view as select id, name from my_table where active = 1;
--fails: could not prepare statement (1 no such table: main.my_table)

为什么它在“主”数据库中搜索表“my_table”?我什至不知道“主”数据库。我认为这是默认情况下存在的一些系统数据库。我打开的数据库标记为“my_database”。所有其他 sql 语句似乎都尊重这一点。 “创建视图”是唯一一个看起来像是在打开的数据库之外运行的视图。

create view my_view as select id, name from my_database.my_table where active = 1;
--fails: could not prepare statement (1 view my_view cannot reference objects in database my_database)

这就是让我特别相信“创建视图”语句在打开的数据库之外运行的原因。

create view my_database.my_view as select id, name from my_database.my_table where active = 1;
--fails: could not prepare statement (1 unknown database my_database)

这个最让我困惑。 'my_database' 数据库怎么可能是未知的?我可以向您保证,我正在将此数据库用于很多其他语句,例如选择、插入、更新、删除,并且所有这些语句都运行良好。仅对于“创建视图”,此数据库是未知的。

create view my_database.my_view as select id, name from my_table where active = 1;
--fails: could not prepare statement (1 unknown database my_database)

我什至尝试在“创建视图”之前一次运行这些:

attach 'my_database.db' as my_database;
--fails: could not prepare statement (23 not authorized)

attach 'my_database.sqlite' as my_database;
--fails: could not prepare statement (23 not authorized)

非常感谢任何帮助。谢谢。

【问题讨论】:

【参考方案1】:

默认数据库(您打开的数据库)始终称为main

您收到错误“no such table: main.my_table”,因为您的数据库不包含名为 my_table 的表。

【讨论】:

好的,谢谢你的回答。关于它为什么搜索“主”数据库中的表的任何想法?我没有对主数据库做任何事情。我希望它能够查看我使用 openDatabase() 打开的数据库

以上是关于WebSQL 创建视图的主要内容,如果未能解决你的问题,请参考以下文章

webSQL

SQL Server里面啥样的视图才能创建索引

mysql多表查询并创建视图

sql如何创建视图?

用SQL代码创建一个视图,并查询视图中的字段

如何用SQL语句创建一个视图