Re: pequeña ayuda con triggers y functions

From: "Fernando Moreno" <azazel(dot)7(at)gmail(dot)com>
To: "Aldo Quezada" <huincha(at)gmail(dot)com>
Cc: "Jaime Casanova" <systemguards(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: pequeña ayuda con triggers y functions
Date: 2008-05-20 15:24:27
Message-ID: b1c45530805200824g51c50999x47b5cccb6074412d@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

¿campo3 siempre será 1?

Independientemente de lo anterior, tu uso de los triggers es incorrecto,
pues si se trata de modificar el registro a actualizar, no hay ninguna
necesidad de ejecutar un UPDATE, sino que te basta con modificar la variable
record NEW.

El día 20 de mayo de 2008 10:04, Aldo Quezada <huincha(at)gmail(dot)com> escribió:

> Asi es Jaime el problema es asi.
>
>
> a ver si puedo explicarme mejor
>
> tabla1
> id
> campo 1
> campo 2
> campo 3
>
> por pagina php se actualizan campo 1 y 2 , porque lo que quiero que el
> campo 3 se actualize con un nuevo valor
>
> CREATE TRIGGER change_sincro_ser BEFORE UPDATE
> ON tabla1
> FOR EACH ROW
> EXECUTE PROCEDURE cambia_sincro( ID ) *(<-- aca deberia mandarse el id o
> es automatico eso no lo entiendo)*
>
>
> CREATE OR REPLACE FUNCTION cambia_sicro(id int) RETURNS trigger AS '
> BEGIN
> IF tg_op = ''UPDATE'' THEN
> UPDATE tabla1 set campo3 = 1 where id = id ;
>
> END IF;
>
> END
> ' LANGUAGE plpgsql;
>
>
> esto es mas menos lo que tengo pero no se si estara bien
>
> Saludos
>
>
>
>
>
> On Mon, May 19, 2008 at 11:00 PM, Jaime Casanova <systemguards(at)gmail(dot)com>
> wrote:
>
>> 2008/5/19 Aldo Quezada <huincha(at)gmail(dot)com>:
>> > OK
>> >
>> > a ver..
>> >
>> > tengo una tabla a la cual se le hacen actualizaciones por php.. el
>> codigo
>> > del php es un asco por desorden del codigo.
>> > por lo cual preferi buscar una solucion por haciendo un trigger y una
>> > funcion, que cada vez que se actualizara esta tabla, lanzara el trigger
>> para
>> > actualizar un campo de esta misma tabla, pero caigo en la redundancia
>> > ciclica.
>> >
>>
>> Corrigeme si me equivoco, tu problema es asi:
>>
>> UPDATE tabla1
>> -> se ejecuta TRIGGER
>> -> dentro del trigger ejecutas otro UPDATE tabla1
>> -> Se ejecuta nuevamente el TRIGGER y vuelves al paso anterior
>>
>> Eso es porque dentro del TRIGGER no debes (ni necesitas) hacer un
>> UPDATE a la misma tabla al mismo registro... dentro del TRIGGER tienes
>> disponible el record NEW que hace referencia al registro que se esta
>> actualizando. Todo lo que debes hacer es definir el TRIGGER como
>> BEFORE UPDATE y actualizar el campo en el registro NEW (NEW.campo) en
>> lugar de hacer un UPDATE
>>
>>
>> --
>> Atentamente,
>> Jaime Casanova
>> Soporte y capacitación de PostgreSQL
>> Guayaquil - Ecuador
>> Cel. (593) 087171157
>>
>
>
>
> --
> アルド ファビアン ケサダ ベアス
> あるど ふぁびあん けさだ べあす
>
> Al sentir una gran tristeza te das cuenta que la alegría es el mejor
> remedio para seguir adelante.
>
> ¿En qué se parece un cigarro,una cerveza, medicamentos y Michale Jackson?
> Todo eso hay que mantenerlo fuera del alcance de los niños.
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Aldo Quezada 2008-05-20 15:45:26 Re: pequeña ayuda con triggers y functions
Previous Message Jaime Casanova 2008-05-20 15:22:31 Re: pequeña ayuda con triggers y functions