Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/11/2013, 17:23
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Reglas para update y delete en vistas

<saludos>
Hola, bueno creo que el tema por el cual el update y el delete no presentan el comportamiento que esperas es por reglas, así que vayamos por partes

1. Al hacer el insert

INSERT INTO vista1 VALUES ('Hola!', 002);

En la tabla obra, los campos precio_peso y ciudad quedan con valor NULL (teorizando que no tienes valores por defecto)
Ahora bien, si en este punto ejecutas el select a vista1, el dato viene?

Si no viene, es porque no cumple la condición de la vista, es decir, que precio_peso no es menor o igual a los precio_peso de Medellin (pues es NULL, para que viniese en la vista, sería darle un valor 0 por default por ej en la columna precio_peso para que no quede como NULL sino como 0)

Y ya con esto, ahora si debería funcionar tanto el update como el delete,
pues para que afecte registros el update o el delete de la vista, el dato debe
estar dentro del dominio de la vista.

Espero no haber sido muy enredado, y que me hayas entendido.
Suerte con eso!!!

P.D: Una cosa más, en el update como lo tienes actualmente, afectas a todos los datos de la vista.
Si quisieras afectar solo el que estás actualizando podrías cambiar la regla así


Código SQL:
Ver original
  1. CREATE OR REPLACE RULE para_vista_update AS ON UPDATE TO vista1 DO INSTEAD UPDATE obra SET titulo=NEW.titulo WHERE id_obra = NEW.id_obra;

</saludos>


__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 07/11/2013 a las 17:26 Razón: P.D