2014-05-06 181 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'表中有一行,用戶不存在。現在有道理,因爲這是做這件事的目的之一。