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

¿Por qué veo COLLATION 'xxx' no es válido para CHARACTER SET 'yyy'?

  1. ¿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.

  2. ¿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.

  3. Es arriesgado cambiar character_set_filesystem y character_set_server. Cámbialos de nuevo.