MySQL Error number: MY-012404; Symbol: ER_IB_MSG_579; SQLSTATE: HY000

文档解释

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.可以建立一个存储过程,将要修改的内容放到存储过程中处理。

你可能感兴趣的