2012-05-02 24 views

Respuesta

7

No, la vista debe ser temporal, de lo contrario se producirá un error:

sqlite> create view view1 as select * from db2.foo union select * from main.foo; 
Error: view view1 cannot reference objects in database db2 
sqlite> create temp view view1 as select * from db2.foo union select * from main.foo; 
sqlite> select * from view1; 
... 

Esto tiene sentido desde un punto de vista temporal es parte de la base de datos creada automáticamente temp que sólo existe para el proceso actual.

EDIT:

Se pueden listar las tablas y vistas temporales (almacenan en la base de datos temp creado automáticamente) de esta manera:

sqlite> .headers on 
sqlite> select * from sqlite_temp_master; 
type|name|tbl_name|rootpage|sql 
view|view1|view1|0|CREATE VIEW view1 as select * from db2.foo union select * from main.foo 

Para las vistas de lista única:

select * from sqlite_temp_master where type='view'; 
+0

¿Es posible obtener una lista de estas vistas, entonces? – Interfector

+0

@Interfector: sí lo es, ver mi actualización. –

+0

Fantástico. Tiene mucho sentido y gracias por explicarlo también. –

Cuestiones relacionadas