Error number: MY-012404; Symbol: ER_IB_MSG_579; SQLSTATE: HY000
Message: %s
错误说明
ER_IB_MSG_579,这个错误是MySQL引擎在初始化时出现的一些错误码之一。Er_IB_Msg_579,错误信息是:“更新在此视图上失败或造成数据不一致:必须从基表更新,而不是视图(%-192s)”。
常见案例
当Update语句的目的表是一个视图,该视图是使用MERGE字句建立的,而且该语句同时又包含Update两个基表时,可能会出现这个错误。
解决方法
1.将Update语句的目的表更改为视图底层的表;
2.去除Update句子中用于Update视图底层表的部分;
3.通过建立触发器来完成;
4.如果是views是用Materialized View建立,需要修改其定义将Enable Query Rewrite改为FALSE;
5.可以建立一个存储过程,将要修改的内容放到存储过程中处理。