【问题标题】:Doctrine Foreign key cascade delete/update exceeds max depth of 15Doctrine 外键级联删除/更新超过最大深度 15
【发布时间】:2018-07-17 15:08:01
【问题描述】:

我正在使用 Symfony:2.8 和教义捆绑包:1.5。

我的原则关联映射是一对多、自引用双向One-To-Many, Self-referencing

这是我的代码:

/**
 * @OneToMany(targetEntity="Ranking", mappedBy="parent")
 */
private $children;

/**
 * @var Ranking
 *
 * @ManyToOne(targetEntity="Ranking", inversedBy="children")
 *
 * @JoinColumn(name="parent_id", referencedColumnName="id", onDelete="cascade")
 */
private $parent;

当我尝试删除行时,我收到此错误:一般错误:3008 外键级联删除/更新超过 15 的最大深度。”

我的问题是有什么方法可以增加学说的最大深度。 提前致谢。

【问题讨论】:

    标签: php mysql symfony doctrine


    【解决方案1】:

    不,你不能。 其实是 MySQL 的限制,不是 Doctrine。

    https://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

    如果 ON UPDATE CASCADE 或 ON UPDATE SET NULL 递归更新相同 它以前在级联期间更新过的表,它的行为就像 严格。这意味着您不能在更新时使用自引用 CASCADE 或 ON UPDATE SET NULL 操作。这是为了防止无限 级联更新导致的循环。自引用 ON DELETE 另一方面,SET NULL 是可能的,就像自引用 ON 删除级联。 级联操作的嵌套不能超过 15 个 层次深

    【讨论】:

      猜你喜欢
      • 2020-01-04
      • 1970-01-01
      • 2021-07-12
      • 2019-04-03
      • 2019-02-14
      • 2019-07-17
      • 2019-12-13
      • 2019-05-28
      • 2019-12-03
      相关资源
      最近更新 更多