MySQL quer converter strings ao fazer
INSERT
e SELECT
. A conversão é entre o que você declara o cliente ter e o que a coluna é declarado como armazenado. A única maneira de evitar isso é com
VARBINARY
e BLOB
em vez de VARCHAR
e TEXT
. O uso de
COLLATION utf8mb4_bin
não evita a conversão de/para CHARACTER SET utf8mb4
; apenas diz que WHERE
e ORDER BY
deve comparar os bits em vez de lidar com acentos e dobras de caixa. Tenha em mente que
CHARACTER SET utf8mb4
é uma maneira de codificar texto; COLLATION utf8mb4_*
é regras para comparar textos nessa codificação. _bin
é simplório. UNIQUE
envolve comparar por igualdade, portanto COLLATION
. Na maioria dos agrupamentos utf8mb4, os 3 (sem espaços) serão comparados iguais. utf8mb4_bin
tratará os 3 como diferentes. utf8mb4_hungarian_ci
trata um=Um>one. Os espaços à direita são controlados pelo tipo de dados da coluna (
VARCHAR
ou outro). A versão mais recente ainda tem uma configuração relacionada à consideração de espaços à direita.