Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/05/2011, 05:42
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Error al ejecutar funcion

El problema es que el iniciador de la secuencia es una stored function, y MySQL no permite que dentro de una function haya transacciones. El hecho de que la transacción se declare dentro de un stored procedure es irrelevante, porque el proceso padre no es el SP es la SF, esto es, las restricciones de proceso de la stored function son heredadas por el subproceso llamado (el SP en este caso).
Lo que pareces haber querido hacer es esquivar la restricción de la transacción impuesta a la SF y eso no es posible, o al menos no es posible hacerlo de ese modo.
La transacción es un objeto de jerarquía superior que afecta todo el proceso de la consulta, por lo que no debe ser colocado en una función, que tiene por único objeto obtener un valor dado.
En otras palabras: No lo hagas así. Usa simplemente un stored procedure donde se realice toda la tarea, o bien usa la transacción por fuera de la función, desde el PHP.

¿Se entiende el problema?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)