Re: Buenos dias

From: Martin Marques <martin(dot)marques(at)2ndquadrant(dot)com>
To: Anthony Sotolongo <asotolongo(at)gmail(dot)com>, "Ing(dot)Informatico Osmany Rodriguez Duran" <orodriguez(at)uij(dot)edu(dot)cu>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Buenos dias
Date: 2017-12-11 16:26:05
Message-ID: 94bc707d-cf23-cf5f-3818-a29bda96eee9@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 11/12/17 a las 12:17, Anthony Sotolongo escribió:
>>
>>>> ELSE
>>>>      INSERT INTO security.users(
>>>>              id, username, nombre, pass, ci, ultimav, rol_id, edad,
>>>> sexo_id,correo, is_active, imagen)
>>>>      VALUES (default, NEW.username,NEW.nombre, NEW.pass, NEW.ci,
>>>> NEW.ultimav, NEW.rol_id, NEW.edad, NEW.sexo_id,NEW.correo,
>>>> NEW.is_active, NEW.imagen);
>>>> END CASE;
>> Fijate que en el ELSE del CASE estas volviendo a insertar la fila. Aquí
>> es donde se genera la recursion.
>>
>> Acá en lugar de insertar deberías simplemente retornar NEW, y en los
>> otros cases retornar NULL (a menos que quieras que se inserte la fila en
>> security.users y en la tabla correspondiente al caso en el que entra en
>> el CASE.
> un return null; luego de cada insert, de este modo creo que no llegara
> nunca al return new del final,
> es similar a colocar  quitar el insert del else y retornar el new;

Bueno ahora que veo el tema de herencia en el mail original, esto es
particionado, así que si, debería retornar NULL, con la única excepción
de cuando no coincide con ninguno de los valores del CASE. Ahí debe
retornar NEW, pero sin hacer el INSERT.

Dicho eso, solamente poner RETURN NULL después de cada INSERT no
soluciona el problema, ya que si no hay coincidencia en el CASE, el PL
que Osmany envió genera una nueva inserción en la misma tabla, y ahí
comienza la recursion

--
Martín Marqués http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Martha Galicia 2017-12-11 17:11:13 unsubcrision
Previous Message Ing.Informatico Osmany Rodriguez Duran 2017-12-11 16:24:15 Gracias