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

MySQL:disparador para actualizar la misma tabla después de insertar

Parece que no puedes hacer todo esto en un gatillo. Según la documentación :

Dentro de una función o disparador almacenado, no se permite modificar una tabla que ya está siendo utilizada (para lectura o escritura) por la instrucción que invocó la función o disparador.

Según esta respuesta , parece que deberías:

cree un procedimiento almacenado, que inserte/actualice la tabla de destino, luego actualice las otras filas, todo en una transacción.

Con un proceso almacenado, confirmará manualmente los cambios (insertar y actualizar). No he hecho esto en MySQL, pero esta publicación parece un buen ejemplo.