Apéndice H. Restricciones en características de MySQL

MySQL 5.0

Apéndice H. Restricciones en características de MySQL

La discución aqui describe restricciones que aplican a el uso de las caracteristicas de MySQL como son las subconsultas ovistas.

H.1. Restricciones en procedimientos almacenados y disparadores

Algunas de las restricciones notadas aqui aplican para todas las rutinas almacenadas; esto es, procedimientos almacenados y funciones almacenadas. Algunas de las restricciones solo aplican a funciones almacenadas, y no a los procedimientos almacenados.

Todas las restricciones para las funciones almacenadas aplican también a los disparadores(triggers).

Las rutinas almacenadas no pueden contener sentencias SQL arbitarias. Las siguientes sentencias no son permitidas dentro de una rutina almacenada:

  • ,

  • ,

  • Sentencias SQL preparadas(, , ). Implicación: No puedo usar SQL dinámico dentro de una rutina almacenada(donde construya dinámicamente sentencias como cadenas y después ejecutarlas).

Para funciones almacenadas (pero no para procedimientos almacenados), las siguientes sentencias son adicionalmente no permitidas:

  • Sentencias que hacen commit o un rollback explicito o implicito.

  • Sentencias que regresen un resultado. Esto incluye sentencias que no tienen una clausula clause y la sentencia . Una funcion puede procesar un resultado tanto como para un o como para el uso de cursor y la sentencia .

El uso de una rutina almacenada puede causar problemas de replicación. Este tema es discutido más adelante en Sección 19.3, “Registro binario de procedimientos almacenados y disparadores”.

todavia no tiene una tabla , asi que aplicaciones que necesiten adquirir información de los parámetros de la rutina deben usar técnicas como tratar la salida de la sentencia.

No existen facilidades de depurado para rutinas almacenadas.

Rutinas almacenadas usan cursores materializados, no cursores nativos. (El resultado es generado y guardado de lado del servidor, y después regresado renglón por renglón como lo solicite el cliente.)

La stentencia no puede ser preparada. Esto aplica para las sentencias preparadas de lado del servidor y para las sentencias SQL preparadas.