-2

SQLでテーブルの下に作成しようとすると、エラーが発生しました

エラー 1071 (42000): 指定されたキーが長すぎます。キーの最大長は 767 バイトです

CREATE TABLE fields_meta_data 
(id varchar(255)  NOT NULL ,
 name varchar(255)  NULL ,
 vname varchar(255)  NULL ,
 comments varchar(255)  NULL ,
 help varchar(255)  NULL ,
 custom_module varchar(255)  NULL ,
 type varchar(255)  NULL ,
 len int(11)  NULL ,
 required bool  DEFAULT '0' NULL ,
 default_value varchar(255)  NULL ,
 date_modified datetime  NULL ,
 deleted bool  DEFAULT '0' NULL ,
 audited bool  DEFAULT '0' NULL ,
 massupdate bool  DEFAULT '0' NULL ,
 duplicate_merge smallint  DEFAULT '0' NULL ,
 reportable bool  DEFAULT '1' NULL ,
 importable varchar(255)  NULL ,
 ext1 varchar(255)  NULL ,
 ext2 varchar(255)  NULL ,
 ext3 varchar(255)  NULL ,
 ext4 text  NULL  , 
 PRIMARY KEY (id),   
 KEY idx_meta_id_del (id, deleted),   
 KEY idx_meta_cm_del (custom_module, deleted)
 )
4

2 に答える 2

0

なんでこんなに広いフィールドを使う必要があるの?id使ったことがあるあなたにもVARCHAR(255)

幅が広すぎるキー/インデックスを作成しようとしています。

id単純に食欲を抑えて、 の整数や 255 よりも狭い他のフィールドなどの合理的なフィールド定義を使用すると、すぐに機能するようになるはずです。

于 2013-01-14T09:28:48.973 に答える
0

UTF8 文字セットを使用していると思います。ID 列は 255 * 4 バイト、つまり 1020 バイトかかり、MyISAM テーブルには多すぎます。

于 2013-01-14T09:30:35.583 に答える