2014-06-21 5 views
0

WebSQL에서보기를 사용할 수 있습니까? 그것은 기본적으로 sqlite 확실히 있기 때문에 그것이 있다고 가정합니다,하지만 내가 잘못 수도 있습니다. 내 로컬 sqlite 데이터베이스에서보기를 만들려고하지만 그것은 내가 무엇을해도 실패합니다. 지금까지 시도한 것들 중 일부는 다음과 같습니다.WebSQL보기 만들기

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) 

어떤 도움을 크게 감사합니다. 감사.

답변

0

기본 데이터베이스 (열어 본 데이터베이스)는 항상 main입니다.

데이터베이스에 my_table이라는 테이블이 없으므로 "no such table : main.my_table"오류가 발생합니다.

+0

답장을 보내 주셔서 감사합니다. 왜 '메인'데이터베이스 내부의 테이블을 검색하는지에 대한 아이디어가 있습니까? 나는 주 데이터베이스로 아무 것도하지 않는다. openDatabase()로 열어 본 데이터베이스 내부를 살펴볼 것으로 기대합니다. – dog