0
我有三個表如下,結合外鍵與觸發器
- 計算器表
- 回答表
- 計算器回答表
計算器回答表是與其他兩個表(它有兩個外鍵給其他兩個表)。我需要的是在評估者表從評估者表中刪除時,刪除評估者提供的所有答案。我刪除了Evaluator Answer表的記錄時創建了一個刪除答案的觸發器。因此,預期的結果是,
- 從計算器表刪除評估
- 刪除(使用外鍵)
- 使用觸發器
刪除答案,但問題是第三次從計算器回答表相應記錄一步不行。我直接從Evaluator Answer表中刪除一條記錄。然後觸發工程。任何人都知道這個解決方案?
級聯不會觸發MySQL中的觸發器,因爲級聯和外鍵約束通常在InnoDB內部的存儲引擎層內處理,而不是在服務器層處理。代碼處理觸發器觸發不知道級聯發生。你的解決方法是使用'ON DELETE RESTRICT',然後在「evaluateator」表上使用'BEFORE DELETE'觸發器,首先從其他表中刪除子行,而不是讓'ON DELETE CASCADE'處理它。 –