c# *** 作mysql事务是不是要在一个数据库连接

c# *** 作mysql事务是不是要在一个数据库连接,第1张

是的。如果你只用到一个连接,这么理解是对的。

数据库事务和连接之间不是一对一的关系,

即一个Tran中可以有多个连接,对多个实例进行 *** 作,

但是一个当Tran开始后,如果当前连接断掉,是不允许再重新连接的, 因为事务要保证执行的完整性。

所以断掉之后,就会执行回滚方法,然后让下一个事务进行。

如果一个事务中只有一个连接, 那么这个事务的所有 *** 作,都要在开始的连接中进行,直到结束, 否则就回滚。

以下为个人理解,仅供参考:

1、会话可以创建多个事务

比如:使用客端连接数据库,这样你就可以执行很多个事务了

2、一个事务只能由一个会话产生

在数据库里的事务,如果在执行的SQL都是由会话发起的,哪怕是自动执行的JOB也是由系统会话发起的

3、一个事务可能会产生一个或多个线程

比如RMAN备份,是可以创建多个线程可加快备份速度

4、一个线程在同一时间内只能执行一个事务

而一个线程,在没结束当前事务是无法释放资源来执行第二个事务


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6667785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存