From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Virginia <mavir78(at)gmail(dot)com> |
Cc: | Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: duda con trigger.... |
Date: | 2009-04-08 15:10:02 |
Message-ID: | 20090408151001.GB10285@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Virginia escribió:
> Buenos días... tengo un problema con un trigger que he creado para que
> actualice un campo de una tabla según el valor de una subcadena de otro
> campo de esa misma tabla, la función es la siguiente:
>
> BEGIN
> IF TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN
> UPDATE autoservicios.toi005_concepto SET tx_tipo = 'A' WHERE
> substring(OLD.cod_concepto from 2 for 4) <'0500';
> UPDATE autoservicios.toi005_concepto SET tx_tipo = 'D' WHERE
> substring(OLD.cod_concepto from 2 for 4) >='0500';
> RETURN NEW;
> END IF;
> END;
Me temo que tu modelo tiene un error severo; le falta un poco de
normalización. Idealmente no deberías estar haciendo un WHERE de un
substring de un campo. Si hay información útil que necesitas en un
WHERE en una cadena, deberías tenerla en una columna separada.
De lo contrario vas a estar toda la vida peleando con problemas como
este.
--
Alvaro Herrera http://www.flickr.com/photos/alvherre/
"Siempre hay que alimentar a los dioses, aunque la tierra esté seca" (Orual)
From | Date | Subject | |
---|---|---|---|
Next Message | Virginia | 2009-04-08 15:15:32 | Re: duda con trigger.... |
Previous Message | Emanuel Calvo Franco | 2009-04-08 15:06:57 | Re: duda con trigger.... |