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)
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 |