我知道innodb对密钥大小施加了限制,但是INT?
CREATE TABLE IF NOT EXISTS `db`.`TAGS` (
`tag_id` INT( 11 ) NOT NULL ,
`tag_text` VARCHAR( 700 ) NULL ,
`date_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`xxx_id` INT( 11 ) NOT NULL COMMENT 'This is for ease of reference lookup later',
`user_id` INT( 11 ) NOT NULL ,
`TAG_FACT_RELATION_relation_id` INT NOT NULL ,
PRIMARY KEY ( `tag_id` ) ,
UNIQUE INDEX `tag_UNIQUE` ( `tag_text` ASC ) ,
UNIQUE INDEX `tag_id_UNIQUE` ( `tag_id` ASC ) ,
INDEX `fk_TAGS_TAG_FACT_RELATION1_idx` ( `TAG_FACT_RELATION_relation_id` ASC ) ,
CONSTRAINT `fk_TAGS_TAG_FACT_RELATION1` FOREIGN KEY ( `TAG_FACT_RELATION_relation_id` ) REFERENCES `meepl`.`TAG_FACT_RELATION` (
`relation_id`
) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE = INNODB;
有错误说:
#1709 - Index column size too large. The maximum column size is 767 bytes.
有什么想法吗?多年来我一直在研究数据类型。
答案 0 :(得分:2)
有点晚了,但我遇到了类似的问题。
您的tag_text
列有一个UNIQUE_INDEX,这就是导致问题的原因,而不是INT数据类型。
通过启用innodb_large_prefix设置,更改MySql安装以启用更大的索引列。
请参阅http://dev.mysql.com/doc/refman/5.5/en/innodb-restrictions.html