答案 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个字节,但其他字段将行大小推到限制之上。
你能做什么:
config_data
字段的长度,使整个行长度符合限制。config_data
数据类型更改为varchar并使用需要较少字节的字符集 - 只需确保字符集支持您需要的所有字符。config_data
数据类型更改为text
,因为文本字段的值中只有一小部分实际存储在行本身中。这实际上是在错误消息本身中建议的。