對用於更新PTS 列的非功能性MySQL 觸發器進行故障排除
用戶面臨一個令人費解的問題,看似簡單的MySQL 觸發器無法執行,促使他們尋求協助。觸發器的目的是根據“played_games”列中的變更更新“pos_table”表中的“PTS”列。
對程式碼的詳細檢查表明,當「played_games」發生變化時,觸發器應能正確運作。列已修改。然而,在進一步故障排除時,遇到錯誤訊息:「無法更新儲存函數/觸發器中的表pos_table,因為它已被呼叫此儲存函數/觸發器的語句使用。」
此錯誤表明MySQL 儲存函數和觸發器的限制可能會阻礙所需的行為。根據 MySQL 文檔,此類函數和觸發器無法修改呼叫它們的語句同時用於讀取或寫入的表。
一個潛在的解決方案是將觸發器類型變更為「BEFORE INSERT」並修改「NEW」變數中的值。
此外,使用者想要的計算可以在顯示時直接執行,而不是透過儲存列執行,從而簡化了程式碼並消除了觸發器問題。
以上是為什麼我的 MySQL 觸發器更新 PTS 失敗並出現'無法更新表 pos_table...”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!