07/11/2013, 17:23
|
| 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 originalCREATE 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
|