Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/06/2012, 23:34
luismaciasalejos
 
Fecha de Ingreso: julio-2011
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Transacciones en Mysql

Buenas!

Tengo un problema con el manejo de una transaccion, mis tablas son Innodb, tengo dos tablas temporales que se crean antes de abrir la transaccion.
El problema es que si yo aplico un rollback, no me hace la eliminacion de las actualizaciones realizadas.

El lenguaje es PHP y esta validando que no haya errores de sintaxis, por lo que todos los movimientos que se enlistan estan correctos, pero por una extraña razon al ejecutar el rollback este se ejecuta sin problemas y sin error pero simplemente no hace nada:

Saque un Log de todos los movimientos que se ejecutan para ver si alguien me puede ayudar a encontrar el problema:

[2012-06-21 22:55:22 Resource id #11 CREATE temporary TABLE tmp_polizadet2 (idpolizadet int unsigned auto_increment,
idcuentacontable int unsigned,
debe decimal (15,2),
haber decimal(15,2),
evaluado char(1),
primary key (idpolizadet));
[2012-06-21 22:55:22 Resource id #11 CREATE temporary TABLE tmp_polizadet (idpolizadet int unsigned auto_increment,
idcuentacontable int unsigned,
debe decimal (15,2),
haber decimal(15,2),
evaluado char(1),
primary key (idpolizadet));
[2012-06-21 22:55:22 Resource id #11 START TRANSACTION;
[2012-06-21 22:55:22 Resource id #11 INSERT INTO conta_poliza (idusuario, fechahora,estatus,idusuarioafecta,fechahoraafecta)
VALUES (1, '2012-06-21 22:55:22','A',1,now())
[2012-06-21 22:55:22 Resource id #11 INSERT INTO caja_movimiento (idcuenta, idpoliza, fechahora, ingreso,nombre,rfc,direccion,idcuentaautorizo,fech ahoraautorizo,piedepagina,idcolonia,telefono,email 1,email2,cp, idgrado, idcicloescolar)
values (1,55, '2012-06-21 22:55:22', '1', '','',' ',1,now(),'',0,'','','','', 2, 12)
[2012-06-21 22:55:22 Resource id #11 INSERT INTO al_alumnopago (idalumno, idcajamovimiento,fecha) VALUES ('5004',55,now())
[2012-06-21 22:55:22 Resource id #11 INSERT INTO al_alumnopagodet (idalumnopago, idtipopago, importe, uno, dos, tres)
VALUES ('43', '1', '5100', '', '', '');
[2012-06-21 22:55:22 Resource id #11 INSERT INTO caja_movimientodet (idcajamovimiento, idtipopago, importe, cheque, banco, referencia, nombre)
VALUES ('55', '1', '5100', '', '', '', '');
[2012-06-21 22:55:22 Resource id #11 UPDATE al_alumnocobro SET pagado = '1' WHERE idalumnocobro = '95';
[2012-06-21 22:55:22 Resource id #11 insert into al_alumnopagocobro (idalumnocobro,idalumnopago) values ('95',43);
[2012-06-21 22:55:22 Resource id #11 INSERT INTO conta_polizadet (idpoliza, idcuentaorigen, debe, haber)
SELECT 55, idcuentacontable, IF(importe >= 0, importe, '0'), IF(importe < 0, abs(importe), '0')
FROM al_alumnocobro
WHERE idalumnocobro = '95';
[2012-06-21 22:55:22 Resource id #11 update al_reinscripcion
set idcajamovimiento=55,
idgrupo = 4
where idreinscripcion=37
[2012-06-21 22:55:22 Resource id #11 DELETE FROM tmp_polizadet
[2012-06-21 22:55:22 Resource id #11 DELETE FROM tmp_polizadet2
[2012-06-21 22:55:22 Resource id #11 INSERT INTO tmp_polizadet (idcuentacontable, debe, haber, evaluado)
SELECT idcuentaorigen, debe, haber, '0'
FROM conta_polizadet
WHERE idpoliza = 55;
[2012-06-21 22:55:22 Resource id #11 SELECT idcuentacontable, debe, haber, evaluado
FROM tmp_polizadet;
[2012-06-21 22:55:22 Resource id #11 SELECT idcuentacontabledestino, tipodestino, porcentaje
FROM conta_parametrizacion
WHERE idcuentacontableorigen = 2 AND
tipoorigen = 'D';
[2012-06-21 22:55:22 Resource id #11 insert into tmp_polizadet2 (idcuentacontable, debe, haber, evaluado)
values (2, 5100.00, 0, '1');
[2012-06-21 22:55:22 Resource id #11 DELETE FROM tmp_polizadet;
[2012-06-21 22:55:22 Resource id #11 INSERT INTO tmp_polizadet SELECT * FROM tmp_polizadet2;
[2012-06-21 22:55:22 Resource id #11 DELETE FROM tmp_polizadet2;
[2012-06-21 22:55:22 Resource id #11 SELECT count(*) as conta FROM tmp_polizadet WHERE evaluado = '0';
[2012-06-21 22:55:22 Resource id #11 SELECT count(*) as conta FROM tmp_polizadet WHERE evaluado = '0';
[2012-06-21 22:55:22 Resource id #11 SELECT sum(debe) as debe, sum(haber) as haber FROM tmp_polizadet;
[2012-06-21 22:55:22 Resource id #11 SELECT conta_cuentacontable.cuenta, conta_polizadet.debe, conta_polizadet.haber
FROM conta_cuentacontable, conta_polizadet
WHERE conta_cuentacontable.idcuentacontable = conta_polizadet.idcuentaorigen AND
conta_polizadet.idpoliza = 55;
[2012-06-21 22:55:22 Resource id #11 SELECT texto FROM io_parametro WHERE nombre = 'AplicaContabilidad';
[2012-06-21 22:55:22 Resource id #11 ROLLBACK;

De antemano les agradezco toda su valiosa ayuda.

Saludos.