2017-05-05 79 views
1

PHPMyAdmin MySQLデータベースにMySQL Serverデータをインポートしようとしました。認識できないデータ型 "nvarchar"が見つかりました。データベースの照合順序が "utf_general_ci"に設定されています。データベースのデータ型nvarcharを認識しない

enter image description here

+0

文字セットはありますか? –

答えて

0

あなたはphpmyadminのことではなく、MySQLが生成されたデータ型はnvarcharメッセージ、心配する必要はありません。 MySQLはnational data character setにMySQLのマニュアルを参照してください、NVARCHARデータ型を許可しない:

標準SQLには CHAR列には、いくつかの事前定義された文字セットを使用する必要があることを示す方法として、NCHARまたはNATIONAL CHARを定義します。 MySQLはこの事前定義された文字セットとして utf8を使用します。例えば、これらのデータタイプ 宣言は等価である:

CHAR(10)、文字セットUTF8 NATIONAL CHARACTER(10)、NCHAR(10)

としては、これらは次のとおり

VARCHAR(10)、 NATIONAL VARCHAR(10)UTF8文字セット、NVARCHAR(10)、NATIONAL CHAR VARYING(10)

NCHAR VARCHAR(10)、NATIONAL CHARACTERのVARYING(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. データ型をtextに変更するのは、テキストフィールドの値のほんの一部だけが実際に行自体に格納されるためです。これは、実際にはエラーメッセージ自体に示唆されています。
関連する問題