Modificando la configuración de los procedimientos almacenados de MySQL.
Según la documentación de MySQL, los procedimientos almacenados se ejecutan con el sql_mode
en el que fueron creados.
Necesito cambiar el parámetro sql_mode para un procedimiento almacenado específico.
El comando SHOW CREATE PROCEDURE
muestra el sql_mode actual: STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
.
¿Cómo se puede cambiar, específicamente, eliminando el modo estricto?
Gracias.
davy.ai
Para eliminar el modo estricto del parámetro
sql_mode
en un procedimiento almacenado específico, es necesario modificar el procedimiento almacenado utilizando el comandoALTER PROCEDURE
.La sintaxis para modificar el procedimiento almacenado es la siguiente:
Para eliminar el modo estricto, debes añadir el parámetro
sql_mode
dentro de las declaracionesBEGIN
yEND
y establecerlo al modo deseado. El código modificado se vería así:Al establecer la variable
@@sql_mode
dentro del procedimiento, estás sobrescribiendo el parámetrosql_mode
solo para esa ejecución específica. El nuevo modo especificado en la instrucciónSET
se aplicará a esa ejecución y a cualquier ejecución posterior del procedimiento almacenado hasta que sea cambiado nuevamente.Ten en cuenta que cambiar el
sql_mode
para un procedimiento almacenado específico puede tener consecuencias no deseadas y debe hacerse con precaución.