У меня есть эта ошибка «#1273 — Неизвестная сортировка: ‘utf8mb4_0900_ai_ci'»

#mysql #collation

#mysql #сортировка

Вопрос:

 CREATE TABLE `payment_methods` (
  `payment_method_id` tinyint(4) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`payment_method_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  

Ответ №1:

 CREATE TABLE payment_methods 
    ( payment_method_id tinyint(4) NOT NULL AUTO_INCREMENT, 
      name varchar(50) NOT NULL, 
      PRIMARY KEY (payment_method_id) 
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
  

ПРИМЕЧАНИЕ: COLLATE=utf8mb4_0900_ai_ci заменить на COLLATE=utf8mb4_general_ci

СМ.: https://www.freakyjolly.com/resolved-when-i-faced-1273-unknown-collation-utf8mb4_0900_ai_ci-error/#.X2jHBGgzZPY

Ответ №2:

utf8mb4_0900_ai_ci — это сопоставление, которое является новым в MySQL 8.0

Она не распознается в более ранних версиях MySQL, например 5.7.

Она также может не распознаваться в форках MySQL, таких как MariaDB.

Вы должны использовать это сопоставление только в MySQL 8.0.

Обратитесь к документации для используемой вами версии программного обеспечения, чтобы увидеть набор поддерживаемых сопоставлений.

Например: https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html

Или запрос INFORMATION_SCHEMA.COLLATIONS , чтобы найти список.

Комментарии:

1. Или SHOW COLLATION;