是否可以在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'数据库未知?我可以向你保证,我正在使用这个数据库进行大量其他语句,例如select,insert,update,delete,所有这些语句都可以正常工作。它仅用于创建视图'该数据库未知。
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)
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
默认数据库(您打开的数据库)始终称为main
。
你得到错误"没有这样的表:main.my_table"因为您的数据库不包含名为my_table
的表。