sql >> Base de Datos >  >> RDS >> Mysql

Creación de desencadenadores dinámicos de Mysql en procedimiento almacenado

Karthikeyan,

No puede crear un disparador dentro del procedimiento almacenado. El disparador es una instrucción DDL que no está permitida dentro de los procedimientos.

" ERROR 1303 (2F003):No se puede crear un DISPARADOR desde dentro de otra rutina almacenada "

Para resolver su propósito puede hacer lo siguiente:

  • Tome los valores actuales de la tabla dentro de la variable.

  • Simplemente escriba una consulta de actualización dentro de su procedimiento, luego verifique si el valor se actualiza o no mediante "ROW_COUNT()".

  • Compare el valor nuevo con el valor antiguo, el modificado y luego insértelo manualmente en la tabla change_log.