Grails hbm2ddl.SchemaUpdate不成功错误

Grails hbm2ddl.SchemaUpdate不成功错误,grails,hbm2ddl,Grails,Hbm2ddl,当我运行grails应用程序时,我得到schemaUpdate失败错误 hbm2ddl.SchemaUpdate Unsuccessful: alter table lifecycle add index FKEDFAE76ABF1565B0 (round_up_emailed_updated_by_id), add constraint FKEDFAE76ABF1565B0 foreign key (round_up_emailed_updated_by_id) referen

当我运行grails应用程序时,我得到schemaUpdate失败错误

    hbm2ddl.SchemaUpdate Unsuccessful: alter table lifecycle add index FKEDFAE76ABF1565B0 (round_up_emailed_updated_by_id), add constraint FKEDFAE76ABF1565B0 foreign
    key (round_up_emailed_updated_by_id) references user (id)
    hbm2ddl.SchemaUpdate Too many keys specified; max 64 keys allowed
    hbm2ddl.SchemaUpdate Unsuccessful: alter table lifecycle add index FKEDFAE76A166A0DC5 (training_advice_telecommunicated_updated_by_id), add constraint FKEDFAE76A1
    66A0DC5 foreign key (training_advice_telecommunicated_updated_by_id) references user (id)
    hbm2ddl.SchemaUpdate Too many keys specified; max 64 keys allowed
    hbm2ddl.SchemaUpdate Unsuccessful: alter table lifecycle add index FKEDFAE76AA40386D9 (laptops_arranged_actor_id), add constraint FKEDFAE76AA40386D9 foreign key (
    laptops_arranged_actor_id) references role (id)
    hbm2ddl.SchemaUpdate Too many keys specified; max 64 keys allowed

这是什么意思?是什么导致了这个错误?

显然您指定了太多的外键;显然,最多允许64个密钥。

虽然您没有发布数据库引擎和版本,但我猜您使用的是MySQL 5.0或更高版本

我使用MySQL 5.5.25和InnoDB作为我的引擎,发现如下:

从MySQL 5.0开始,每个表最多有64个索引

有人试图使用MySQL 5.0创建一个包含64个以上外键的表,并在错误消息中得到了您得到的确切文本:

Too many keys specified. Max 64 keys allowed
这是他们的错误报告


如果您运行的是MySQL 5.0或更高版本,而这正是您遇到的错误,那么这不是Grails或hbm2ddl的问题,而是底层数据库引擎的问题

你是说。。在一个类中,我只能有64个外键?