Pular para o conteúdo principal

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:

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

  2. 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 ou utf8mb4_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.