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

Problema al insertar emoji/caracteres UTF-8 de 4 bytes en la base de datos MySQL cuando el activador de inserción está activo

Esto sucede porque information_schema.processlist está utilizando el conjunto de caracteres UTF8mb3. (UTF es un alias de UTFmb3). Esta simple consulta ilustra esto:

mysql> select info, "🔥" from information_schema.processlist;
+------------------------------------------------------+------+
| info                                                 | ?    |
+------------------------------------------------------+------+
| select info, "?" from information_schema.processlist | 🔥     |
+------------------------------------------------------+------+
1 row in set, 1 warning (0,00 sec)

Warning (Code 1366): Incorrect string value: '\xF0\x9F\x94\xA5" ...' for column 'INFO' at row 1

La advertencia anterior probablemente resulte en un error cuando el activador intente insertar el contenido de la info columna en otra tabla.

Creo que el problema es que la cadena de consulta se almacena tal como está en processlist tabla sin convertirla al juego de caracteres esperado. Presenté un informe de error sobre esto.