Re: Feliz navidad y una consulta.

From: Gerardo Herzig <gerardo(dot)herzig(at)ayres(dot)io>
To: Gonzalo V <gvm2121(at)gmail(dot)com>
Cc: FORO POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Feliz navidad y una consulta.
Date: 2017-12-25 21:04:31
Message-ID: CAM+tAYHBP=qMUxT==tVExMOs2axha7soV7Vw16tA1D=2AvrVWA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 24 de diciembre de 2017, 17:53, Gonzalo V <gvm2121(at)gmail(dot)com> escribió:

> Ya lo arreglé. habia que arreglar FOR EACH ROW
>
> CREATE TRIGGER vencimientos_trigger AFTER INSERT OR UPDATE ON
> "Facturacion_registro" *for each row* EXECUTE PROCEDURE
> actualiza_fact_registro_trigger();
>
> saludos y feliz navidad!!
>
> Saludos,
> Gonzalo
>
> El 24 de diciembre de 2017, 17:15, Gerardo Herzig <gerardo(dot)herzig(at)ayres(dot)io
> > escribió:
>
>>
>>
>> El 24 de diciembre de 2017, 17:06, Gonzalo V <gvm2121(at)gmail(dot)com>
>> escribió:
>>
>>> Hola gerardo, gracias por responder. Imprime el siguiente error
>>> ERROR: record "new" is not assigned yet
>>> DETAIL: The tuple structure of a not-yet-assigned record is
>>> indeterminate.
>>> CONTEXT: SQL statement "Update "Facturacion_registro" f set
>>> "Cod_sucursal"=(select s."ID" from sucursales s where
>>>
>>> s."DIRECCION"=NEW."Dirección")
>>> from sucursales s
>>> where
>>> s."DIRECCION"=NEW."Dirección" and f."Cod_sucursal" is null"
>>> PL/pgSQL function actualiza_fact_registro_trigger() line 3 at SQL
>>> statement
>>> SQL state: 55000
>>>
>>> Saludos,
>>> Gonzalo
>>>
>>> El 24 de diciembre de 2017, 16:44, Gerardo Herzig <
>>> gerardo(dot)herzig(at)ayres(dot)io> escribió:
>>>
>>>>
>>>>
>>>> 2017-12-24 15:10 GMT-03:00 Gonzalo V <gvm2121(at)gmail(dot)com>:
>>>>
>>>>> Feliz navidad a todos!
>>>>> Tengo una duda, si me pueden ayudar en esta navidad...
>>>>> Necesito crear una funcion trigger que updatee unos datos a partir de
>>>>> otras tablas pero no me funciona, alguien sale como se hace?. Lo que llevo
>>>>> hecho, no me funciona.
>>>>> De antemano, muchas gracias y feliz navidad y año nuevo.
>>>>>
>>>>>
>>>>> CREATE OR REPLACE FUNCTION actualiza_fact_registro_trigger() RETURNS
>>>>> TRIGGER AS $$
>>>>> BEGIN
>>>>> Update "Facturacion_registro" f set "Cod_sucursal"=(select s."ID" from
>>>>> sucursales s where
>>>>>
>>>>> s."DIRECCION"=f."Dirección")
>>>>> from sucursales s
>>>>> where
>>>>> s."RUT"=f."Rut" and s."DIRECCION"=f."Dirección" and f."Cod_sucursal" is
>>>>> null;
>>>>> RETURN new;
>>>>> END
>>>>> $$
>>>>> LANGUAGE 'plpgsql';
>>>>>
>>>>> CREATE TRIGGER vencimientos_trigger AFTER INSERT OR UPDATE ON
>>>>> "Facturacion_registro" EXECUTE PROCEDURE actualiza_fact_registro_trigge
>>>>> r();
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Saludos,
>>>>> Gonzalo
>>>>>
>>>>
>>>>
>>>> No queda claro que es lo que "no funciona". Si no me equivoco, la
>>>> funcion del trigger no usa para nada los valores del registro que se esta
>>>> insertando, por lo que, para empezar, proba directamente ese SQL de la
>>>> funcion, tiralo via 'psql' como un query comun y corriente. Tal vez sucede
>>>> que los WHERE de tu query no satisfacen ningun registro, pero de nuevo, no
>>>> se entiende cual es el problema.
>>>>
>>>> HTH
>>>> --
>>>> --
>>>> Gerardo Herzig
>>>> Principal Consultant at Ayres Data Team
>>>> root at Via Postgres Argentina
>>>>
>>>
>>>
>> Ah pero ahi SI estas usando NEW. No es el mismo codigo del OP.
>> Si vos queres actualizar el registro que se esta insertando, podes
>> asignar directamente a NEW: Algo como...
>>
>> new."Cod_sucursal" = select s."ID" from sucursales s where
>> s."DIRECCION"=NEW."Dirección"
>>
>> HTH
>> --
>> --
>> Gerardo Herzig
>> Principal Consultant at Ayres Data Team
>> root at Via Postgres Argentina
>>
>
Gonzalo, para la proxima:
1) Intenta no hacer top-posting, ya que hace mucho mas complicado de seguir
el thread
2) Si posteas alguna clase de problema o error, evita el "no me anda",
postea cual es *exactamente* el error que te da, asi vamos mas directo a la
fuente del problema.

Saludos
--
--
Gerardo Herzig
Principal Consultant at Ayres Data Team
root at Via Postgres Argentina

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Micky Khan 2017-12-28 21:22:29 Recorrer Tabla/cursor y formar un solo dato
Previous Message Gonzalo V 2017-12-24 20:53:29 Re: Feliz navidad y una consulta.