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@gmail.com> wrote:
2008/5/19 Aldo Quezada <huincha@gmail.com>:
> OKCorrigeme si me equivoco, tu problema es asi:
>
> 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.
>
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.
No comments:
Post a Comment