我试图将MySQL服务器数据导入PHPMyAdmin MySQL数据库。未识别的数据类型"nvarchar“找到。我的数据库排序规则设置为"utf_general_ci“。

发布于 2017-05-05 10:31:06
您不必担心由phpmyadmin而不是MySQL生成的nvarchar消息。MySQL确实允许nvarchar数据类型,请参阅MySQL手册关于国家数据字符集
标准SQL将NCHAR或NATIONAL CHAR定义为指示CHAR列应使用某些预定义字符集的方式。MySQL使用utf8作为预定义的字符集。例如,这些数据类型声明是等价的: CHAR(10),字符集utf8 (10),NCHAR(10) 这些措施也是如此: VARCHAR(10),字符集utf8 NATIONAL VARCHAR(10),NVARCHAR(10),NVARCHAR(10),NVARCHAR(10)
真正的问题是错误消息的底部:行大小太大了。此错误消息来自MySQL,这是您需要解决的错误信息。
mysql对nvarchar数据类型使用utf8字符集。mysql中的utf8字符最多使用3个字节。您的config_data字段被定义为nvarchar(21844),因此它需要最多21844*3+2=65534字节。
正如错误消息所述,一行可以长达65535字节,因此您还剩下1字节,但是其他字段将行大小推高到极限以上。
你能做的是:
config_data字段的长度,使整个行长度符合限制。config_data数据类型更改为varchar,并使用所需字节较少的字符集--只需确保字符集支持所需的所有字符即可。config_data数据类型更改为text,因为实际上只有一小部分文本字段的值存储在行本身中。这实际上是在错误消息本身中提出的。https://stackoverflow.com/questions/43801482
复制相似问题