phpMyAdmin
 sql >> база данни >  >> Database Tools >> phpMyAdmin

Неразпознаване на тип данни nvarchar в базата данни

Не е нужно да се притеснявате за съобщението nvarchar, което е генерирано от phpmyadmin, а не от MySQL. MySQL позволява nvarchar тип данни, вижте ръководството за MySQL за национални данни набор от символи :

Стандартният SQL дефинира NCHAR или NATIONAL CHAR като начин да се посочи, че колона CHAR трябва да използва някакъв предварително дефиниран набор от знаци. MySQL използва sutf8 като този предварително дефиниран набор от знаци. Например, тези декларации за тип данни са еквивалентни:

CHAR(10), НАБОР ОТ СИМВОВЕ utf8 НАЦИОНАЛЕН ЗНАК (10), NCHAR(10)

Както и тези:

VARCHAR(10), НАБОР НА СИМВОЛОВ utf8 НАЦИОНАЛЕН VARCHAR(10), NVARCHAR(10),NCHAR VARCHAR(10), НАЦИОНАЛЕН НАБОР НА ХАРАКТЕРИ (10), НАЦИОНАЛЕН CHARVARYING(10)

Истинският проблем е в долната част на съобщението за грешка:размерът на реда е твърде голям. Това съобщение за грешка идва от MySQL и това е, което трябва да разрешите.

mysql използва набор от символи utf8 за тип данни nvarchar. Един utf8 символ в mysql използва до 3 байта. Вашите config_data полето се дефинира като nvarchar(21844) , следователно изисква до 21844*3+2=65534 байта.

Както се казва в съобщението за грешка, редът може да бъде с дължина до 65535 байта, така че оставате ви 1 байт, но другите полета избутват размера на реда над ограничението.

Какво можете да направите:

  1. Намалете config_data дължина на полето, така че общата дължина на реда да се вмести в ограничението.
  2. Променете config_data тип данни за varchar и използвайте набор от знаци, който изисква по-малко байтове – просто се уверете, че наборът от знаци поддържа всички знаци, от които се нуждаете.
  3. Променете config_data тип данни към text защото само малка част от стойността на текстово поле всъщност се съхранява в самия ред. Това всъщност е предложено в самото съобщение за грешка.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Как да деактивирате строг режим в mysql, като използвате MAMP на Mac

  2. Замяна на всички поява на низ със стойности от масив

  3. MySQL - Заявката комбинира редове със същия идентификатор и запазва всички записи за този идентификатор, но като един запис

  4. phpmyadmin:създайте функция

  5. Не мога да вляза в phpmyadmin с root потребител