-
¿Por qué tener una cláusula COLLATE al comparar BIGINT con números literales? Elimine la cláusula COLLATE en la instrucción UPDATE. -- Esta es la solución principal, según los comentarios de OP.
-
¿Está el código dentro de una rutina almacenada que se creó con latin1? Haga SHOW CREATE PROCEDURE (o FUNCTION) para ver si ese fuera el caso. Si es así, SÉLTELO y recréelo con utf8mb4 en vigor.
-
Es arriesgado cambiar character_set_filesystem y character_set_server. Cámbialos de nuevo.