Re: pequeña ayuda con triggers y functions

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

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 Jaime Casanova 2008-05-20 15:22:31 Re: pequeña ayuda con triggers y functions
Previous Message Oscar 2008-05-20 15:03:34 Duda