首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改变交易隔离水平的原则

改变交易隔离水平的原则
EN

Stack Overflow用户
提问于 2020-01-14 00:38:49
回答 1查看 1.1K关注 0票数 1

我想将mysql数据库的所有查询/更新的事务隔离级别更改为已提交。由于我们使用的是google应用程序数据库,所以不能在mysql配置中更改它,因此需要在与数据库的连接中更改它。

我们使用的是Doctrine和Symfony3,除了发出命令(例如

代码语言:javascript
复制
 $this->getEntityManager()->getConnection()->prepare('SET TRANSACTION ISOLATION LEVEL READ COMMITTED')->execute();

我很确定有一些支持改变事务隔离,但我似乎无法解决如何实现这一点。

EN

回答 1

Stack Overflow用户

发布于 2020-01-14 03:26:00

https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/transactions.html文档:

Doctrine\DBAL\Connection还具有控制底层数据库支持的事务隔离级别的方法。Connection#setTransactionIsolation($level)和Connection#getTransactionIsolation()可用于此目的。可能的隔离级别由以下常量表示:

请参阅隔离级别常量列表的文档。

所以你可以在每个连接上运行这个:

代码语言:javascript
复制
$this->getEntityManager()->getConnection()->setTransactionIsolation($level);

如果您希望它是默认的,所以不必在每个连接中设置它,那么就必须在MySQL服务器的my.cnf文件中设置它。请参阅https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_transaction_isolation

如果您不能全局更改my.cnf,那么您必须使用一行代码为每个连接设置它,如上面所示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59726105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档