2014-05-06 190 views
0

我正在玩一个复制的数据库,我已经切换到innodb来掌握外键。我有下面的表格,下面有他们的列。在每个fk上,我设置ON DELETE:级联和ON UPDATE:级联。这工作,直到我得到的 '低级' 表从哪里获得:innodb和外键 - 外键约束失败

ALTER TABLE lowlevel添加外键(user_id)参考文献 testdbusersuser_id)ON DELETE CASCADE ON UPDATE CASCADE;

1452 - 不能添加或更新子行,外键约束失败( testdb

'#SQL-11e6_47710b'>,约束#sql-11e6_47710b_ibfk_1 FOREIGN KEY (user_id)参考文献usersuser_id)ON DELETE CASCADE ON)


的想法是/是我应该accounts它会循环通过其COMPUTER_ID的...它的user_id的删除帐户...然后最后的低层行,所以整个用户帐户与一个通话中移除。另一方面,如果前面的约束条件未被设置,它将反向工作并阻止通过此链的任何插入。

我没有对此进行任何查询......只是试图通过phpmyadmin来设置fk。我的逻辑在哪里错了,为什么我不能在我的'低级'表格示例中设置fk?

我的表:


---------
ACCOUNT_ID(初级)

计算机
-------- -
computer_id(primary)
account_id(fk to accounts.account_id)

用户
---------
USER_ID(主)
COMPUTER_ID(FK到computers.computer_id)

低级
---------
ID (primary)
user_id(fk to users.user_id)

回答

0

我已经在'lowlevel'表中有一行,用户不存在。现在有道理,因为这是做这件事的目的之一。