2017-05-05 325 views

回答

0

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

标准SQL NCHAR或国家CHAR定义,以此来表明 CHAR列应使用默认字符集。 MySQL使用 utf8作为此预定义的字符集。例如,这些数据类型 声明是等价的:

CHAR(10),字符集UTF8 NATIONAL CHARACTER(10),NCHAR(10)

由于是这些:

VARCHAR(10), CHARACTER SET UTF8国家VARCHAR(10),NVARCHAR(10), NCHAR VARCHAR(10),国家字符改变(10),国家CHAR 不同(10)

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

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

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

你可以做什么:

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