Незаконна суміш колацій
❌ Помилка
Незаконна суміш колацій (utf8mb4_general_ci,IMPLICIT) та (utf8mb4_unicode_ci,IMPLICIT) для операції '='
📍 Контекст
Ця помилка виникає, коли MySQL намагається порівняти два рядки, які використовують різні колації (наприклад, utf8mb4_general_ci
проти utf8mb4_unicode_ci
). Це часто трапляється у скриптах FiveM, коли запити стосуються даних гравців (наприклад, номерні знаки, імена, ідентифікатори), збережених з непослідовними колаціями.
✅ Рішення
Є два способи виправити це:
-
Уніфікувати колацію всієї бази даних (рекомендується)
ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Це забезпечує використання однієї й тієї ж колації для всіх таблиць і запитів.
-
Налаштувати конкретні таблиці або стовпці
- Видалити або змінити уражені таблиці.
- Змінити SQL-схему, щоб використовувати послідовну колацію (
utf8mb4_unicode_ci
абоutf8mb4_general_ci
). - Відтворити або мігрувати дані.
ℹ️ Додаткова інформація
- Завжди створюйте резервну копію вашої бази даних перед внесенням структурних змін.
- Використання utf8mb4_unicode_ci зазвичай є переважним, оскільки воно забезпечує кращу підтримку Unicode.
- Змішування колацій між таблицями може призвести до непередбачуваних помилок запитів.
- Для отримання додаткової інформації про колації MySQL зверніться до документації MySQL.