MySQLの:指定されたキーが長すぎました。最大キー長は767バイトです。

table文の構築:

CREATE  TABLEを IF  ないが、 EXISTS API(
    APIの   VARCHAR500ではない ヌル 
    方法はvarchar50ではない nullを デフォルトの ' POST ' 

    PRIMARY  キー(API、メソッド)
)ENGINE =のInnoDB DEFAULTの CHARSET = utf8をし;

エラー: 

指定されたキーは、あまりにもだった長いです最大 キー長がある 767バイト。

理由:

  ここでは、APIを使用し、上記基本キーのAPIテーブルを行うための方法は、これら二つのフィールドに応じて索引付けされ、文字セットがUTF8は、次に3バイト文字、合計バイト数の指標である、である:500 * 3 + = 1650バイト3 * 50は、インデックスは、MySQL 767バイトが必要です。

ソリューション:

  VARCHARへのAPIフィールド(200)VARCHARに、方法(20)

 

:それとも、最初のn文字インデックスフィールド、参照として定義することができますhttps://blog.csdn.net/u010429286/article/details/80418666  解決するために

UNIQUE  KEY `uniq_store_code`(` record_date`、 `store_code`(20)、` sku_division_code`(20)、 `abc`(20))

その後store_codeは、sku_division_codeは、一意のインデックスとして元からABCの3つの文字フィールド20は、その長さを超えないようにすることを意味します。

 

おすすめ

転載: www.cnblogs.com/feiquan/p/11571745.html