![](/img/trans.png)
[英]How many queries can be used in a single MySQL or MariaDB transaction
[英]Will a mysql transaction work if multiple connections are used for the queries?
所以这里......
//我开始交易$ mysqli = new mysqli(...);
//开始事务$ mysqli-> autocommit(FALSE);
如果每个准备好的查询都返回true,它将返回($ mysqli-> commit())否则为$ mysqli-> rollback
我不知道该交易会自动提交的原因
我已经用3个多个连接完成了一些事务,但它们回滚了……这不是... mysql是否支持通过单个连接查询的事务?
解决...如果像我这样的情况下来自不同表的查询是相互依存的,并且您需要强大的数据访问安全性,请为您打开的每个连接将autocommit设置为false,为每个失败的业务逻辑将var设置为false,如果任何失败,回滚每组查询,否则返回evry查询...是的,事务是按连接执行的,当我说mysql对某些多个conn事务进行了回滚时,还有其他东西可以管理回滚
重新编辑:ofc不会像正常事务一样工作...万一发生系统崩溃,数据将一直存储到崩溃时刻
事务内的所有查询必须位于同一连接上。 如果您有三个连接,则将打开三个事务(假设它们未处于自动提交模式)。
如果您确实需要分布式事务,则必须使用MySQL的XA事务 -但是只有在要处理多个数据库中的事务(或者其他一些非数据库事务)时才真正需要这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.