2016-10-28 50 views
1

我創建外鍵,但不斷得到錯誤外鍵約束在phpMyAdmin失敗而產生的外鍵

1452 - 不能添加或更新子行:外鍵約束失敗(demo_db#sql-271c_ac,約束company_state_id對外

KEY(company_state_id)參考文獻companyId))

SQL查詢是

ALTER TABLE `state` ADD CONSTRAINT `company_state_id` FOREIGN KEY (`company_state_id`) REFERENCES `company`(`Id`) ON DELETE RESTRICT ON UPDATE RESTRICT; 

enter image description here

+1

表中有數據,說明外鍵約束 – Jens

+0

您必須清除表中的所有數據,並且可以添加約束 – Bharat

+0

任何其他想法,因爲我的表中有超過100條記錄。 –

回答

0

只要做到這一點:

SET FOREIGN_KEY_CHECKS=0; 
ALTER TABLE `state` ADD CONSTRAINT `company_state_id` FOREIGN KEY (`company_state_id`) REFERENCES `company`(`Id`) ON DELETE RESTRICT ON UPDATE RESTRICT; 
SET FOREIGN_KEY_CHECKS=1; 

這首先會忽略所有的外鍵檢查,改變你的表,並再次檢查恢復到1只

希望這有助於: )