Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да поправите грешки при неправилна стойност на низа?

АКТУАЛИЗИРАНЕ на отговора по-долу:

Когато въпросът беше зададен, "UTF8" в MySQL означаваше utf8mb3 . Междувременно utf8mb4 беше добавен, но доколкото ми е известно MySQLs "UTF8" не беше превключен да означава utf8mb4 .

Това означава, че ще трябва специално да поставите "utf8mb4", ако го имате предвид (и трябва да използвате utf8mb4 )

Ще запазя това тук, вместо просто да редактирам отговора, за да стане ясно, че все още има разлика, когато казвате „UTF8“

Оригинал

Не бих предложил отговор на Ричис, защото прецаквате данните в базата данни. Няма да отстраните проблема си, но се опитайте да го „скриете“ и да не можете да извършвате основни операции с базата данни с изрязаните данни.

Ако срещнете тази грешка, или данните, които изпращате, не са кодирани с UTF-8, или връзката ви не е UTF-8. Първо, проверете дали източникът на данни (файл, ...) наистина е UTF-8.

След това проверете връзката си с базата данни, трябва да направите това след свързване:

SET NAMES 'utf8mb4';
SET CHARACTER SET utf8mb4;

След това проверете дали таблиците, където се съхраняват данните, имат набор от знаци utf8mb4:

SELECT
  `tables`.`TABLE_NAME`,
  `collations`.`character_set_name`
FROM
  `information_schema`.`TABLES` AS `tables`,
  `information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations`
WHERE
  `tables`.`table_schema` = DATABASE()
  AND `collations`.`collation_name` = `tables`.`table_collation`
;

Накрая проверете настройките на вашата база данни:

mysql> show variables like '%colla%';
mysql> show variables like '%charac%';

Ако източникът, транспортът и дестинацията са utf8mb4, проблемът ви е изчезнал;)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mySQL Грешка 1040:Твърде много връзки

  2. актуализиране на стойностите на колоните с колона на друга таблица въз основа на условие

  3. Как да извлечем първия и последния запис на групиран запис в MySQL заявка с агрегатни функции?

  4. MySQL DROP FOREIGN KEY Ограничение

  5. AVG() – Изчислете средната стойност на колона в MySQL