MySQL (innodb) 防止循环引用

MySQL (innodb) Prevent Circular Reference

我有一个对象 Permissions,它有一个 InheritedPermissions 的列,它引用了另一个相同类型的对象 - 理论上你可以永远继续这个链。我想确保在添加或更改 InheritedPermissions 的值时它永远不会创建循环引用。

我想我必须通过存储过程或客户端代码中的一系列检查来完成此操作(我知道如何执行此操作)- 但是,因为有很多关于 SQL我不知道的(触发器、选项等...)我想仔细检查一下:

有没有一种方法可以设置 table,如果要创建循环引用,它会简单地禁止引用?

我正在使用 MySQL 和 innodb。

MySQL 中没有内置任何内容来防止像您描述的那样的循环引用。您被繁琐的代码所困扰。