代码之家  ›  专栏  ›  技术社区  ›  Dom

我的数据库有外键问题

  •  1
  • Dom  · 技术社区  · 14 年前

    我正在创建一个社交网站,在朋友桌上工作,不知道我做错了什么。

    我有一个 users friends (friend1,friend2,状态)。 friend1 friend2 是的外键 userId “更新时”和“删除时”设置为“层叠”

    1451-无法删除或更新父行:外键约束失败( modionz1_nightspot/friends ,约束 friends_ibfk_1 朋友1 )参考文献 用户 ( ))

    顺便说一下,这两个表都是innodb。对这些概念的任何帮助都将不胜感激。

    1 回复  |  直到 14 年前
        1
  •  1
  •   HLGEM    14 年前

    首先,对于任何希望有超过几百条记录的数据库来说,级联更新是一个非常糟糕的主意。如果您使用它,并且您有数千或数百万的子记录,那么您可以将整个系统锁定数小时。避免级联更新。正确的过程是添加所需的父记录。然后更新子记录以反映该值,而不是初始值,然后删除旧的父记录。不管怎样,最好设计一个不需要更新PK的地方,这也是很多人使用代理密钥的原因之一。