【问题标题】:Grails: disable Foreign key constraintsGrails:禁用外键约束
【发布时间】:2018-05-29 11:24:28
【问题描述】:

我正在使用 grails 3.3.2。 有没有办法删除自动生成的外键约束? 谢谢。

我试过了:

  1. grails 模式导出

  2. 删除像“alter table xxx add constraint yyy foreign key zzzz...”这样的行

  3. 更改 dbCreate:无

但不方便,尤其是当域类发生变化时。

【问题讨论】:

  • 为什么需要这个?能举个例子吗?
  • 这是一个只读应用程序。导入数据时不方便。
  • 您要永久删除还是临时删除?

标签: grails foreign-keys grails-orm


【解决方案1】:

您有 2 个选项来删除数据库的外键约束。

  1. 从映射到另一个域(数据库表)的域类中删除 static belongsTo

  1. 您可以在数据库级别从数据库控制台(对于 MySql)进行外键检查,如下所示,但是,这样做时要小心,这可能会违反您的外键约束规则。

    SET FOREIGN_KEY_CHECKS = 0; // disable foreign key check
    SET FOREIGN_KEY_CHECKS = 1; // enable foreign key check
    

【讨论】:

  • 您需要将数据源的数据库配置更改为 dbCreate = "update",我认为您现在“已阅读”
  • 1.删除静态属于不要删除约束。我刚刚测试过了。 2. 我想找到一种与数据库无关的方法。也许 Hibernate 的一些配置可以处理它。但是我还没有找到。
  • 在更改 dbCreate = "update" 之前,您不能这样做,您可以选择上面答案中提到的第二个选项。
  • 我刚刚找到了这个:burtbeckwith.com/blog/?p=465,但我无法关注它,因为 Grails 3.3.2 中不存在 GrailsAnnotationConfiguration。
猜你喜欢
  • 1970-01-01
  • 2017-01-14
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多