Marco:

2017-04-18 1:06 GMT+02:00 Marco Vinicio Jimenez Rojas <vinici...@gmail.com>:
> Tengo la siguiente transacción en la cual necesito utilizar el valor del
> "returning id_roles" fuera de la transacción. todo funciona bien pero no me
> sale ese dato por ningún lado

Cuando 'no te sale' que quieres decir? Eso parece un trozo de script
medio pegado, si se lo metes al psql ¿ que hace / imprime ?. Nota, si
estas usando algo tipo el pgAdmin este puede estar recibiendo el dato
y no mostrarlo, pero para depurar esas cosas necesitarias contar
exactamente la secuencia que usas y los programas y versiones ( el
psql es mas sencillo para estos reports, lo arrancas, le pegas el
query, imprimira algo, cortas el texto de la pantalla entera y lo
pegas, por eso te lo digo ).

> begin transaction;
> with roles as(
>     insert INTO ovinos.roles VALUES(default,'prueba rol','el primer rol de
> prueba',2) returning id_rol
>     )
>     insert INTO ovinos.funciones_roles VALUES(4,(select roles.id_rol from
> roles)),
>     (5,(select roles.id_rol from roles))returning id_roles;

Parece correcto PERO no poner los nombres de las columnas en las que
estas insertando es 1.- Pedir problemas a medio plazo y 2.- una
dificultad añadida para que te digamos nada ya que no sabemos
siquierea como se llaman las columnas en las tablas.

Una prueba similar ( sin schemas ) me funciona sin problemas:
http://sqlfiddle.com/#!15/92ae0/1/0

Y por el estilo del report esto tiene toda la pinta de ser problemas
con la herramienta de queries que estas usando.


> commit;
> ROLLBACK TRANSACTION;

¿ Porque commit + rollback ?

Francisco Olarte.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a