Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/10/2013, 19:35
Avatar de paula23andrea
paula23andrea
 
Fecha de Ingreso: noviembre-2012
Mensajes: 38
Antigüedad: 11 años, 5 meses
Puntos: 1
Pregunta Reglas para update y delete en vistas

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 original
  1. CREATE 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 original
  1. CREATE OR REPLACE RULE para_vista AS ON INSERT TO vista1 DO INSTEAD INSERT INTO obra (titulo, id_obra) VALUES (NEW.titulo, NEW.id_obra);
  2.  
  3.  
  4. 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;
  5.  
  6.  
  7. 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 original
  1. INSERT INTO vista1 VALUES ('Hola!', 002);
  2.  
  3. UPDATE vista1 SET titulo = 'Chao' WHERE id_obra=002;
  4.  
  5. DELETE FROM vista1 WHERE titulo=’chao’ AND id_obra=002;


Muchas gracias!
__________________
Suerte!!