2010-10-02 172 views
0

我在使用外鍵來編輯mysql中的數據時遇到了問題。當我嘗試更新的外鍵,它說:外鍵約束

不能添加或更新子行,外鍵約束失敗(sadsystem/products,約束fk_ProductRelationship11外鍵(size_id)參考文獻product_sizessize_id))

回答

1

這樣做的標準方法是SET CONSTRAINTS DEFERRED

但是,MySQL/InnoDB不支持這一點。您將不得不按照一致性順序編輯數據:也就是說,首先必須在product_sizes之前創建目標行,然後才能從其他表中引用size_id

(如果你一定要知道自己在做什麼(如導入時的數據),也可以暫時禁用foreign_key_checks設置,但這並沒有檢查參照完整性,當您重新啓用它:在禁用時破壞的任何約束都將保持打破狀態。)

+0

請賜教更多。我不擅長mysql。我這樣做是因爲它是我的小編程主題的一部分。我如何在phpmyadmin中執行這些操作? – 2010-10-02 06:56:15

0

更新外鍵的一部分(或全部)列時,新外鍵的新值必須引用被引用表中的一行。該錯誤消息是說您正嘗試將外鍵更新爲參考表中不存在的值。

+0

我現在很困惑。你可以看到我關於編輯外鍵的詳細問題。請花時間閱讀和研究我在那裏發佈的代碼。非常感謝你 – 2010-10-02 06:57:46

+0

http://stackoverflow.com/questions/3844591/inner-join-passing-data-from-table-for-edit – 2010-10-02 06:57:56