【发布时间】:2014-06-23 17:24:33
【问题描述】:
我正在使用已切换到 innodb 以掌握外键的复制数据库。我有下面的表格,它们的列在下面。在每个 fk 上,我设置 ON DELETE : cascade 和 ON UPDATE : cascade。这一直有效,直到我到达我得到的“低级”表:
ALTER TABLE
1452 - 无法添加或更新子行:外键约束失败 (lowlevel添加外键 (user_id) 参考testdb.users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;testdb.'#sql-11e6_47710b'>,约束
#sql-11e6_47710b_ibfk_1外键 (user_id) 参考users(user_id) 删除级联时)
这个想法是/我应该从accounts 中删除一个帐户,它会循环遍历它的computer_id ......它的user_id ......然后最后是它的低级行,这样整个用户帐户就可以通过一个电话被删除。另一方面,如果没有设置先前的约束,它将向后工作并防止通过此链进行任何插入。
我没有对此进行任何查询...现在只是尝试通过 phpmyadmin 设置 fk。我的逻辑在哪里错了,为什么我不能在我的“低级”表示例中设置 fk?
我的桌子:
帐户
---------
account_id(主要)计算机
---------
computer_id (primary)
account_id (fk to accounts.account_id)用户
---------
user_id(主要)
computer_id(转至computers.computer_id)低级
---------
id (primary)
user_id (fk to users.user_id)
【问题讨论】:
标签: sql database foreign-keys innodb