Перейти до основного вмісту

Незаконна суміш колацій

❌ Помилка

Незаконна суміш колацій (utf8mb4_general_ci,IMPLICIT) та (utf8mb4_unicode_ci,IMPLICIT) для операції '='

📍 Контекст

Ця помилка виникає, коли MySQL намагається порівняти два рядки, які використовують різні колації (наприклад, utf8mb4_general_ci проти utf8mb4_unicode_ci). Це часто трапляється у скриптах FiveM, коли запити стосуються даних гравців (наприклад, номерні знаки, імена, ідентифікатори), збережених з непослідовними колаціями.

✅ Рішення

Є два способи виправити це:

  1. Уніфікувати колацію всієї бази даних (рекомендується)

     ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    Це забезпечує використання однієї й тієї ж колації для всіх таблиць і запитів.

  2. Налаштувати конкретні таблиці або стовпці

    • Видалити або змінити уражені таблиці.
    • Змінити SQL-схему, щоб використовувати послідовну колацію (utf8mb4_unicode_ci або utf8mb4_general_ci).
    • Відтворити або мігрувати дані.

ℹ️ Додаткова інформація

  • Завжди створюйте резервну копію вашої бази даних перед внесенням структурних змін.
  • Використання utf8mb4_unicode_ci зазвичай є переважним, оскільки воно забезпечує кращу підтримку Unicode.
  • Змішування колацій між таблицями може призвести до непередбачуваних помилок запитів.
  • Для отримання додаткової інформації про колації MySQL зверніться до документації MySQL.