情况是这样的:Mysql的版本是5.5.14,默认的事务级别是REPEATABLE-READ,然后binlogformat是STATEMENT,那么就算是普通的insert操作都会报这个错误:
java.sql.SQLException: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
如果是使用Trans.exec(Connection.TRANSACTION_REPEATABLE_READ,new Atom() {
public void run() {
//...
}
});
的话,则在事务里面的可以成功insert。
在不修改mysql配置的情况(hibernate试过是可以正常操作的),请问在代码层次有什么方式可以处理这个问题?谢谢~~
精华
Nutz 在Mysql5.5.14默认设置的环境下,insert,update等操作报错
标签:
无
7 回复
@wendal 但是为什么普通的insert都会出错呢?另一个系统用的hibernate是可以正常操作的,所以觉得奇怪了。
@wendal 是有自增的,那就是这个原因了~~那么就是只能是修改mysql配置了,或者修改源码?没有接口可以设置的吗?
@wendal 好的,这个可以~谢谢了~
添加回复
请先登陆