Álvaro estoy de acuerdo contigo, solo que esta es una cosa muy especial
que estoy haciendo y escapa totalmente del mundo transaccional
tradicional. Finalmente lo que hice fue un While que llama consultas con
dblink.
SELECT c INTO VAR_TIME FROM dblink('myconn','INSERT INTO
times(current,gameid,timekindid)
VALUES(True,'||VAR_GAME||','||VAR_TIEMPO||') RETURNING id') AS id(c int);
El While se mantiene andando siempre como una especie de demonio. Ahora
voy a meterle carga simulada para ver cómo se comporta bajo estrés en
cuanto a performances e integridad de la data.
Por ultimo te comento que en este caso en particular no quiero que se
produzca un rollback nunca ya que justamente para el proyecto la idea es
que los datos siempre reflejen hasta donde llego el proceso aunque este
sea incompleto en cuanto al contenido de los datos.
Voy a tratar comunicar los resultados a la lista con un ejemplo real del
proyecto. Claro si es que los resultados son buenos ;)
Gracias a todos.
El 14-03-2010 10:47, Alvaro Herrera escribió:
noXat escribió:
Función:
WHILE X= True LOOP
INSERT INTO padre(lo_que_sea) VALUES('eee') RETURNING id INTO VAR_ID;
RAISE NOTICE 'CREO LLAVE VAR_ID;
PERFORM pg_sleep(60);
END Loop;
No te recomiendo esto. Vas a tener una transacción abierta
indefinidamente, lo cual es un problema muy severo para VACUUM. Te
recomiendo que escribas el loop en un programa cliente que abra y cierre
una nueva transacción para cada iteración del bucle.
---- ADVERTENCIA ---- La información contenida en este correo electrónico, y en
su caso, cualquier fichero anexo al mismo, son de carácter privado y
confidencial, y se encuentra protegida por la ley N° 19628 y/o por los
contratos de confidencialidad firmados con el emisor, siendo para uso exclusivo
de su destinatario. Si usted no es el destinatario correcto, el empleado o
agente responsable de entregar el mensaje al destinatario, o ha recibido esta
comunicación por error, le informamos que está totalmente prohibida cualquier
divulgación, distribución o reproducción de esta comunicación según la
legislación vigente y le rogamos que nos lo notifique inmediatamente,
procediendo a su destrucción sin continuar su lectura.