sql >> データベース >  >> Database Tools >> phpMyAdmin

データベース内のデータ型nvarcharを認識しない

    MySQLではなくphpmyadminによって生成されたnvarcharメッセージについて心配する必要はありません。 MySQLはnvarcharデータ型を許可します。国内データに関するMySQLマニュアルを参照してください。文字セット :

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

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

    これらは次のとおりです:

    VARCHAR(10)、CHARACTER SET utf8 NATIONAL VARCHAR(10)、NVARCHAR(10)、NCHAR VARCHAR(10)、NATIONAL CHARACTER VARYING(10)、NATIONAL CHARVARYING(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へのデータ型 テキストフィールドの値のごく一部だけが実際に行自体に格納されるためです。これは実際にはエラーメッセージ自体で示唆されています。



    1. 新しいIDでスクリプトを生成します(依存関係についても)

    2. 致命的なエラー:キャッチされないエラー:関数名はC:\ xampp \ htdocs \ em0126 \ app \ code \ core \ Mage \ Core \ Model \ Layout.php:555スタックトレース:#0の文字列である必要があります

    3. SQL Server Management Studio 2012はどこにありますか?

    4. PMAデータベース...phpMyAdminのアップグレードではOKではありません