Para que una vista se pueda actualizar debe existir una relación directa entre las filas y columnas de la vista y las de la tabla fuente. Según el estándar ANSI, se puede actualizar a través de las vistas si la consulta que la define, satisface las siguientes restricciones:
1ª - No especifica DISTINCT
2ª - FROM debe especificar una única tabla
3ª - La lista de selección no puede contener expresiones, columnas calculadas o
funciones de columna, solo referencias a columnas simples.
4ª - WHERE no debe incluir subconsultas.
5ª - No debe incluir ni GROUP BY ni HAVING.
EJEMPLO:
1) Crear una vista que muestre los vendedores de la región este.
CREATE VIEW repEste AS
SELECT *
FROM RVENTAS
WHERE r_oficina IN (11,12,13); //que serían las situadas al Este
Ahora añadimos un nuevo vendedor a través de la vista.
INSERT INTO repEste (num_empl, nombre, r_oficina, edad, ventas)
Ahora añadimos un nuevo vendedor a través de la vista.
INSERT INTO repEste (num_empl, nombre, r_oficina, edad, ventas)
VALUES (113, ‘Jorge Ruiz’, 11, 43, 0.00);
Ahora resulta que trasladan a otro empleado(104) a otra oficina (12).
UPDATE repEste
Ahora resulta que trasladan a otro empleado(104) a otra oficina (12).
UPDATE repEste
SET r_oficina = 21 //aquí se equivocan y en lugar de poner 12 ponen 21
WHERE num_empl = 104;
Con lo cual este señor no figuraría en la vista, pero sí en la tabla.
WHERE num_empl = 104;
Con lo cual este señor no figuraría en la vista, pero sí en la tabla.
No hay comentarios:
Publicar un comentario