utilizar autocommit o commit por cada vez que realice una transacción

From: Milton inostroza <minoztro(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: utilizar autocommit o commit por cada vez que realice una transacción
Date: 2005-05-07 02:26:51
Message-ID: 172699c5050506192658547dee@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

hola, espero explicarme lo mejor posible para que me puedan ayudar.

Estoy desarrollando un sistema (python) y he conectado casi toda la
base de datos utilizando ''AUTOCOMMIT" pero he tenido muchos problemas
al momento de insertar en una tabla la cual tiene varias fk 's de
otras tablas. me explico mejor imaginen que tabla3 tiene un fk de
tabla2 y que para insertar todos los datos de tabla3 tengo que primero
insertar los datos de tabla2...algo asi como que un empleador tiene
una sola dirección, entonces primero debo insertar direccion y despues
empleador (reglas de integridad)...ahora bien el problema se da cuando
se inserta de forma exitosa direccion pero por algun error al momento
de insertar empleador este no se inserta, como utilizo autocommit no
puedo hacer un rollback (por lo menos lo realizo y no resulta), ahora
la pregunta es...dejo de utlizar autocommit y despues de cada execute
que haga debo realizar un commit? la estructura de codigo que utilizo
es:

try:
insert en tabla2
except:
error0
try:
insert en tabla3
except:
error1

ahora imaginen que son 5 tablas y que todas deben insertarse a la vez,
es decir son las 5 exitosas o ninguna...se que he sido un poco
enredado pero por favor ayudenme, miren que cambiar de autocommit a
commit en un sistema que inserta, modifica y selecciona de 35 tabla es
algo tremendo.

gracias por su ayuda y comprension,

si utilizará commit, me imagino que la estructura sería la siguiente:

try:
insert en tabla5
except:
error5
try:
insert en tabla4
except:
error4
try:
insert en tabla3
except:
error3
try:
insert en tabla2
except:
error2
try:
insert en tabla1
conexion(commit) #si todas resultan bien aca las autorizo para que
se queden
#en la base de datos
except:
error1

--
Milton Inostroza Aguilera
Desarrollador de RemuneX (sistema de remuneraciones amparado bajo GPL)

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Oswaldo Hernández 2005-05-07 10:45:23 Re: [pgsql-es-ayuda] utilizar autocommit o commit por cada vez que realice una transacción
Previous Message Roberto Cesar Najera 2005-05-06 23:07:54 Fw: imagenes en la DB