2016-11-17 38 views
2
CREATE TABLE wp_locations (
     `id` INT(11) NOT NULL AUTO_INCREMENT, 
     `city` VARCHAR(255) NOT NULL, 
     `name` VARCHAR(255) NOT NULL, 
     CONSTRAINT `city_name` UNIQUE (`city`, `name`) 
    ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 

SQLエラー '#1071 - 指定されたキーが長すぎます。最大キーの長さは767バイトですSQLエラー#1071 - 指定されたキーが長すぎます。最大キーの長さは767バイトです

私は間違っていますか?

+1

あなたの組み合わせキーが長すぎる使用していない767の最大キーの長さ制限

を超えています。別のキーを作成するか列の長さを減らす –

+0

新しい列 'unique_id binary(16)'を作成し、2列を連結し、ハッシュし** RAWハッシュ**を 'unique_id'に保存し、' unique_id'をユニークにします。ジョブが完了しました。 –

答えて

3

MySQLは常にUTF8フィールドの最大量を4バイトとしますので、255 + 255DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ciとします。あなたは、単一のvarcharな長さを減らすことができるか、複合キー

+0

これは問題でした、私はそれをvarchar 128に変更しました。 –

+0

128 x 4 x 2> 767 – scaisEdge

+0

をもう一度減らすべきですが、私が言ったように、それは問題ないのでもう一度 –

関連する問題