【问题标题】:Grails hbm2ddl.SchemaUpdate Unsuccessful errorGrails hbm2ddl.SchemaUpdate 不成功错误
【发布时间】:2012-08-18 13:40:35
【问题描述】:

当我运行我的 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

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

【问题讨论】:

    标签: grails hbm2ddl


    【解决方案1】:

    显然你指定了太多外键;显然最多允许 64 个键。

    【讨论】:

    • 你的意思是..在一个类中我只能有64个外键......?
    【解决方案2】:

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

    我使用 MySQL 5.5.25 和 InnoDB 作为我的引擎,并且发现了以下发现:

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

    有人试图使用 MySQL 5.0 创建一个具有超过 64 个外键的表,并在他们的错误消息中得到了你得到的确切文本:

    Too many keys specified. Max 64 keys allowed
    

    这是他们在bugs.mysql.com Bug #51450 上的错误报告。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 2016-08-01
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多