mysql报1785错误问题解决,SQLSTATE[HY000]: General error: 1785 Statement violates GTID
在执行sql的时候报一个1785错误,错误信息如下:
SQLSTATE[HY000]: General error: 1785 Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables
针对1785错误分析发现是由于一个事务中同时包含了 Innodb 表和 MyISAM 表,所以出现这个报错。
解决方法:
方法一、将数据表引擎由 MyISAM转化为InnoDB引擎;
用Navicat工具直接操作或者执行sql操作,sql语句:alter table `tab_name` engine=innodb ,其中 tab_name 为你自己的表名。
方法二、重新规划事务边界,不要在一个事务中混用2种引擎的表。