mysql的存储过程会自动开启一个事务吗
有一段代码,这段代码开启了事务,整个请求就开启了这一个事务,这个事务中间有调用一个存储过程,这个存储过程就是更新了一些数据,存储过程里面是没有显示开启事务的,就begin,end就完了。
这个事务里面有更新一条数据,执行完后,代码里面又有个操作去更新存储过程里面刚刚更新过了的同一条数据,这里就发生了锁等待超时了。
我想问的是,调用执行存储过程,存储过程里面没有开启事务,它会自动开启一个新的事务吗?而且没有自动提交。
导致后面操作相同数据的时候拿不到锁。
我通过查看MySQL的锁情况和代码测试,发现确实是存储过程开启了一个新的事务,执行完后也没有提交,一直挂在那里。
倚天杖