Skip site navigation (1) Skip section navigation (2)

Re: error en ejecucion de trigger

From: Rafael Martinez <r(dot)m(dot)guerrero(at)usit(dot)uio(dot)no>
To: Miguel Torres <mtorres066(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: error en ejecucion de trigger
Date: 2011-04-18 21:40:12
Message-ID: 1303162812.32519.7.camel@core2 (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
On Mon, 2011-04-18 at 15:19 -0600, Miguel Torres wrote:

[.......]
>
> Este es el trigger:
> CREATE TRIGGER grabar_usuario AFTER INSERT OR DELETE OR UPDATE ON
> usuario FOR EACH STATEMENT EXECUTE PROCEDURE procesa_usuario_audit();

[.......]
> Este es el mensaje de error:
> Ejecuto un update o insert en la tabla usuario:
> 
> soporte=# update usuario set depto = 'Administracion' where id_usuario
> = 514;
> ERROR:  el registro «new» no ha sido asignado aún
> DETALLE:  La estructura de fila de un registro aún no asignado no
> está determinado.
> CONTEXTO:  función PL/pgSQL «procesa_usuario_audit» en la línea 10
> en sentencia SQL
> soporte=#
> 

Hola

Tu problema probablemente es que has definido un disparador que se
ejecuta una sola vez per comando SQL y en tu funcion estas intentando
retornar NEW y OLD despues de actualizar la tabla 'usuario_audit'

Los procedimientos almacenados utilizados por disparadores que se
ejecutan una sola vez per comando SQL (statement-level) tienen que
devolver siempre NULL.

Mas información en:
http://www.postgresql.org.es/node/301


-- 
Rafael Martinez Guerrero
Center for Information Technology
University of Oslo, Norway

PGP Public Key: http://folk.uio.no/rafael/

In response to

Responses

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2011-04-18 22:16:37
Subject: Re: Ayuda migrar de 8.1 a 9.0
Previous:From: Alvaro HerreraDate: 2011-04-18 21:38:39
Subject: Re: error en ejecucion de trigger

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group