Home  >  Article  >  Database  >  MySQL错误代码为err[1442]的解决总结_MySQL

MySQL错误代码为err[1442]的解决总结_MySQL

WBOY
WBOYOriginal
2016-06-01 13:08:282590browse

 当触发器和存贮过程交互的调用某一个字段的时候会出现这个报错

    ﹙1﹚             工具: Navicatfor mysql

    ﹙2﹚             错误描述:

              1﹚ 在编写考试排名的数据库设计期间,数据库会出现批处理,对该用户不同计算出回答正确数和题目总数的时候,数据库用触发器直接计算出它的正确率

              2﹚ 设计完成之后报错为err[1442]

  ﹙3﹚             错误解释:
                     SQLSTATE: HY000 (ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG)消息:由于它已被调用了该存储函数/触发程序的语句使用,不能在存储函数/触发程序                     中更新表'%s'。

    ﹙4﹚             解决过程

              1﹚ 删除触发器.

              2﹚ 刷新数据库

              3﹚ 重新调用存贮过程即可实现

    ﹙5﹚             详细解决说明

             1﹚ 该部分错误是调用触发器的同时存贮过程也在使用这个字段,故而出现这个错误

              2﹚ 这个存贮过程是要执行多个语句的,当第一部分执行完之后肯定会涉及到该表的改动,那么就会立即触发触发器的操作,触发器会使用该字段.但是存贮过程还没有结束,他                    也在继续执行继续使用该字段,故而产生错误

在处理中建议存贮过程实现的功能一体实现,不建议存贮过程+触发器的实现方式.容易产生该错误,并且在后续变更等方面限制会更大,性能也有所影响
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn