Una vista SQLite es una tabla virtual de solo lectura en concepto, que en realidad es solo una instrucción SELECT
con un nombre:
CREAR VER AUTH_info AS
SELECCIONE user.login, shadow.passwd
DESDE el usuario JOIN shadow ON id;
SELECCIONE passwd DESDE auth_info WHERE login = ‘dannyboy’;
- ¿Los programas Java que dependen del Sun Java JDK de 32 bits consumen menos memoria que su contraparte de 64 bits en Ubuntu?
- ¿Es necesario escribir un método onDestroy en una aplicación de Android?
- ¿Qué tan seguros son los datos del usuario con aplicaciones de Android hechas en China, como UC Browser, CM Security, etc.?
- ¿Cuáles son las cosas importantes en Android en el nivel avanzado si ha terminado con las cosas para principiantes en el desarrollo de Android?
- ¿Alguien puede ayudarme en el desarrollo de una aplicación de Android? Tengo poca experiencia con JavaScript pero nunca he intentado programar una aplicación móvil.
Debido a que es de solo lectura, no puede hacer un INSERT
, UPDATE
o DELETE
directamente en una vista, pero puede configurar los desencadenadores INSTEAD OF
que “atrapan” estas operaciones y hacen la Cosa Sensible bajo el capó. Un ejemplo de la propia documentación de SQLite:
CREAR TABLA cliente (
cust_id INTEGER PRIMARY KEY,
cust_name TEXT,
cust_addr TEXT
);
CREAR VISTA customer_address AS
SELECCIONE cust_id, cust_addr FROM customer;
CREAR GATILLO cust_addr_chng
EN LUGAR DE ACTUALIZACIÓN DE cust_addr EN customer_address
EMPEZAR
ACTUALIZAR cliente SET cust_addr = NEW.cust_addr
WHERE cust_id = NEW.cust_id;
FIN;
Personalmente, prefiero que la lógica de mi base de datos sea un poco menos “oculta”, por lo que casi nunca uso disparadores, pero la capacidad de hacer “vistas de escritura” está ahí si la necesita.