網上查了很多,都說不滿足主鍵約束啥的等等都沒解決,我的問題主要是刪除記錄的時候刪不了,最後發現是中間表的外鍵默認刪除時是RESTRICT,
當取值爲No Action或者Restrict時,則當在父表(即外鍵的來源表)中刪除對應記錄時,首先檢查該記錄是否有對應外鍵,如果有則不允許刪除。
當取值爲Cascade時,則當在父表(即外鍵的來源表)中刪除對應記錄時,首先檢查該記錄是否有對應外鍵,如果有則也刪除外鍵在子表(即包含外鍵的表)中的記錄。
當取值爲Set Null時,則當在父表(即外鍵的來源表)中刪除對應記錄時,首先檢查該記錄是否有對應外鍵,如果有則設置子表中該外鍵值爲null(不過這就要求該外鍵允許取null)。
解決: 把外鍵字段原來默認的Restrict改成CASCADE即可