Buenas noches, estoy aprendiendo sobre las vistas, y necesito poder usar el insert, update y delete, para esto necesité hacer reglas, por lo que estas ediciones se hacen sobre la tabla base. Ahora, el problema radica en que formulé las reglas y el motor me las aceptó, el insert funciona, pero el update y el delete no...
Quisiera saber si alguien conoce más acerca del tema y me ayuda a encontrar el error 'lógico' de las reglas...
Código SQL:
Ver originalCREATE OR REPLACE VIEW vista1 AS (SELECT titulo, id_obra FROM obra WHERE precio_peso <= ALL (SELECT precio_peso FROM obra WHERE ciudad = 'Medellin'));
Aquí creé la vista, de acuerdo a la base de datos que tengo, y si la selecciono me bota los datos correctos.
Código SQL:
Ver originalCREATE OR REPLACE RULE para_vista AS ON INSERT TO vista1 DO INSTEAD INSERT INTO obra (titulo, id_obra) VALUES (NEW.titulo, NEW.id_obra);
CREATE OR REPLACE RULE para_vista_update AS ON UPDATE TO vista1 DO INSTEAD UPDATE obra SET titulo=NEW.titulo, id_obra=NEW.id_obra;
CREATE OR REPLACE RULE para_vista_delete AS ON DELETE TO vista1 DO INSTEAD DELETE FROM obra WHERE id_obra=OLD.id_obra;
Y esas son las reglas que formulé para poder usar las sentencias:
Código SQL:
Ver originalINSERT INTO vista1 VALUES ('Hola!', 002);
UPDATE vista1 SET titulo = 'Chao' WHERE id_obra=002;
DELETE FROM vista1 WHERE titulo=’chao’ AND id_obra=002;
Muchas gracias!