innodb和外键 - 外键约束失败

时间:2014-05-06 22:53:41

标签: sql database foreign-keys innodb

我正在玩一个复制的数据库,我已经切换到innodb以掌握外键。我有下面的表格,下面是他们的列。在每个fk我设置ON DELETE:cascade和ON UPDATE:cascade。这种方法有效,直到我达到“低级别”的水平。我得到的桌子:

  

ALTER TABLE lowlevel ADD FOREIGN KEY(user_id)REFERENCES   testdbusersuser_id)ON UPETE CASCADE ON UPDATE CASCADE;

     1452 - 无法添加或更新子行:外键约束失败(testdb。      

'#sql-11e6_47710b'>,CONSTRAINT #sql-11e6_47710b_ibfk_1外键   (user_id)参考usersuser_id)ON DELETE CASCADE ON)


这个想法是/我是否应该从accounts中删除一个帐户,它会循环显示其computer_id ...其user_id ...然后最终是它的低级行,以便删除整个用户帐户一个电话。另一方面,如果未设置先前的约束,它将向后工作并阻止通过此链的任何插入。

我对此没有任何疑问......只是试图通过phpmyadmin立即设置fk。我的逻辑在哪里错了,为什么我不能将fk设置在我的低级'表示例?

我的表:

  帐号
  ---------
account_id(主要)   

     

电脑
  ---------
computer_id(主要)
account_id(fk to accounts.account_id)   

     

用户
  ---------
user_id(主要)
computer_id(fk到computers.computer_id)   

     

低级别   ---------
id(主要)
user_id(fk到users.user_id)

1 个答案:

答案 0 :(得分:0)

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