mysql error 1442_MySQL错误代码为err[1442]的解决总结_MySQL
當(dāng)觸發(fā)器和存貯過程交互的調(diào)用某一個字段的時候會出現(xiàn)這個報錯
﹙1﹚ 工具: Navicatfor mysql
﹙2﹚ 錯誤描述:
1﹚ 在編寫考試排名的數(shù)據(jù)庫設(shè)計期間,數(shù)據(jù)庫會出現(xiàn)批處理,對該用戶不同計算出回答正確數(shù)和題目總數(shù)的時候,數(shù)據(jù)庫用觸發(fā)器直接計算出它的正確率
2﹚ 設(shè)計完成之后報錯為err[1442]
﹙3﹚ 錯誤解釋:
SQLSTATE: HY000 (ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG)消息:由于它已被調(diào)用了該存儲函數(shù)/觸發(fā)程序的語句使用,不能在存儲函數(shù)/觸發(fā)程序 中更新表’%s’。
﹙4﹚ 解決過程
1﹚ 刪除觸發(fā)器.
2﹚ 刷新數(shù)據(jù)庫
3﹚ 重新調(diào)用存貯過程即可實現(xiàn)
﹙5﹚ 詳細解決說明
1﹚ 該部分錯誤是調(diào)用觸發(fā)器的同時存貯過程也在使用這個字段,故而出現(xiàn)這個錯誤
2﹚ 這個存貯過程是要執(zhí)行多個語句的,當(dāng)?shù)谝徊糠謭?zhí)行完之后肯定會涉及到該表的改動,那么就會立即觸發(fā)觸發(fā)器的操作,觸發(fā)器會使用該字段.但是存貯過程還沒有結(jié)束,他 也在繼續(xù)執(zhí)行繼續(xù)使用該字段,故而產(chǎn)生錯誤
在處理中建議存貯過程實現(xiàn)的功能一體實現(xiàn),不建議存貯過程+觸發(fā)器的實現(xiàn)方式.容易產(chǎn)生該錯誤,并且在后續(xù)變更等方面限制會更大,性能也有所影響
總結(jié)
以上是生活随笔為你收集整理的mysql error 1442_MySQL错误代码为err[1442]的解决总结_MySQL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql err 1118_MySQL
- 下一篇: mysql join on 索引_连接查