On Thu, Nov 27, 2008 at 3:36 PM, Jaime Casanova
<[EMAIL PROTECTED]> wrote:
> On Thu, Nov 27, 2008 at 10:27 AM, Javier Chávez B. <[EMAIL PROTECTED]> wrote:
>>>
>>> Algo asi:
>>> create view bar as select * from foo;
>>>
>>> --replace * with the actual names of columns for every column you want to
>>> affect
>>> create rule r_insert_bar as on insert to bar do instead insert into
>>> foo values (new.*);
>>> create rule r_update_bar as on update to bar do instead update foo set
>>> * = new.* where pk =old.pk;
>>> create rule r_delete_bar as on delete to bar do instead delete from
>>> where pk =old.pk;
>>
>> O sea de esta manera estoy actualizando una vista pero le indico que
>> actualice los campos fisicos que lo componen verdad??? su manera de
>> trabajo es como una especie de trigger???
>>
>
> no. una vista es un select con un nombre. no tiene campos fisicos...
> mas bien el DO INSTEAD le dice que en lugar de ejecutar la sentencia
> que tu le pasaste (ej: INSERT INTO mivista) ejecute la sentencia que
> yo le digo... es mas un re-escritor de consultas (una forma de macro
> si se quiere)
Dejame entender bien la idea ....
Alvaro dijo lo siguiente :
create view bar as select * from foo;
Tu posteaste :
>>> --replace * with the actual names of columns for every column you want to
>>> affect
>>> create rule r_insert_bar as on insert to bar do instead insert into
>>> foo values (new.*);
>>> create rule r_update_bar as on update to bar do instead update foo set
>>> * = new.* where pk =old.pk;
>>> create rule r_delete_bar as on delete to bar do instead delete from
>>> where pk =old.pk;
Lo que daria como resultado algo asi :
create view bar as
select create rule r_insert_bar as on insert to bar do instead
insert into foo values (new.*);
create rule r_update_bar as on update to bar do instead
update foo set * = new.* where pk =old.pk;
create rule r_delete_bar as on delete to bar do instead
delete from where pk =old.pk; from foo;
La sintaxis seria esa??? ( en terminos generales por supuesto) o
no??? y lo que haria seria para cada una de las sentencias
Insert/Delete / Update , realizar una accion en la tabla fisica... va
por ahi ???
Slds
J
--
Cumprimentos
jchavez
linux User #397972 on http://counter.li.org/
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net