Mistura ilegal de colações
❌ Erro
Mistura ilegal de colações (utf8mb4_general_ci,IMPLICIT) e (utf8mb4_unicode_ci,IMPLICIT) para a operação '='
📍 Contexto
Este erro ocorre quando o MySQL tenta comparar duas strings que usam colações diferentes (por exemplo, utf8mb4_general_ci
vs. utf8mb4_unicode_ci
). Isso acontece frequentemente em scripts do FiveM quando as consultas envolvem dados de jogadores (por exemplo, placas, nomes, identificadores) armazenados com colações inconsistentes.
✅ Solução
Existem duas maneiras de corrigir isso:
-
Unificar a colação de todo o banco de dados (recomendado)
ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Isso garante que todas as tabelas e consultas usem a mesma colação.
-
Ajustar tabelas ou colunas específicas
- Excluir ou alterar as tabelas afetadas.
- Modificar o esquema SQL para usar uma colação consistente (
utf8mb4_unicode_ci
ouutf8mb4_general_ci
). - Recriar ou migrar os dados.
ℹ️ Informações Adicionais
- Sempre faça backup do seu banco de dados antes de aplicar alterações estruturais.
- Usar utf8mb4_unicode_ci é geralmente preferido, pois oferece melhor suporte a Unicode.
- Misturar colações entre tabelas pode levar a erros de consulta imprevisíveis.
- Para mais detalhes sobre colações do MySQL, consulte a documentação do MySQL.