无法识别数据库中的数据类型nvarchar

时间:2017-05-05 09:34:55

标签: mysql phpmyadmin

我尝试将MySQL Server数据导入PHPMyAdmin MySQL数据库。找不到无法识别的数据类型“ nvarchar ”。我的数据库排序规则设置为“utf_general_ci”。

enter image description here

1 个答案:

答案 0 :(得分:0)

您不必担心由phpmyadmin生成的nvarchar消息,而不是MySQL。 MySQL确实允许nvarchar数据类型,请参阅national data character set上的MySQL手册:

  

标准SQL将NCHAR或NATIONAL CHAR定义为指示的方式   CHAR列应该使用一些预定义的字符集。 MySQL使用   utf8作为此预定义字符集。例如,这些数据类型   声明是等价的:

     

CHAR(10),CHARACTER SET utf8 NATIONAL CHARACTER(10),NCHAR(10)

     

这些是:

     

VARCHAR(10),CHARACTER SET utf8 NATIONAL VARCHAR(10),NVARCHAR(10),   NCHAR VARCHAR(10),NATIONAL CHARACTER VARYING(10),NATIONAL CHAR   变(10)

真正的问题是在错误消息的底部:行大小太大。此错误消息来自MySQL,这是您需要解决的问题。

mysql对nvarchar数据类型使用utf8字符集。 mysql中的utf8字符最多使用3个字节。您的config_data字段定义为nvarchar(21844),因此最多需要21844 * 3 + 2 = 65534字节。

正如错误消息所示,一行最长可达65535字节,因此您还剩1个字节,但其他字段将行大小推到限制之上。

你能做什么:

  1. 减少config_data字段的长度,使整个行长度符合限制。
  2. config_data数据类型更改为varchar并使用需要较少字节的字符集 - 只需确保字符集支持您需要的所有字符。
  3. config_data数据类型更改为text,因为文本字段的值中只有一小部分实际存储在行本身中。这实际上是在错误消息本身中建议的。