Caused by: java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row:

  網上查了很多,都說不滿足主鍵約束啥的等等都沒解決,我的問題主要是刪除記錄的時候刪不了,最後發現是中間表的外鍵默認刪除時是RESTRICT,

  當取值爲No Action或者Restrict時,則當在父表(即外鍵的來源表)中刪除對應記錄時,首先檢查該記錄是否有對應外鍵,如果有則不允許刪除。

  當取值爲Cascade時,則當在父表(即外鍵的來源表)中刪除對應記錄時,首先檢查該記錄是否有對應外鍵,如果有則也刪除外鍵在子表(即包含外鍵的表)中的記錄。

  當取值爲Set Null時,則當在父表(即外鍵的來源表)中刪除對應記錄時,首先檢查該記錄是否有對應外鍵,如果有則設置子表中該外鍵值爲null(不過這就要求該外鍵允許取null)。

  解決:  把外鍵字段原來默認的Restrict改成CASCADE即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章