Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 更改事务隔离级别的原则_Mysql_Doctrine_Transaction Isolation - Fatal编程技术网

Mysql 更改事务隔离级别的原则

Mysql 更改事务隔离级别的原则,mysql,doctrine,transaction-isolation,Mysql,Doctrine,Transaction Isolation,我想将mysql数据库的所有查询/更新的事务隔离级别更改为“已提交”。由于我们使用的是google应用程序数据库,我们无法在mysql配置中更改它,因此需要在与数据库的连接中更改它 我们正在使用条令和Symfony3,我正在努力了解除了发出如下命令之外,如何实现这一点 $this->getEntityManager()->getConnection()->prepare('SET TRANSACTION ISOLATION LEVEL READ COMMITTED')->

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

我们正在使用条令和Symfony3,我正在努力了解除了发出如下命令之外,如何实现这一点

 $this->getEntityManager()->getConnection()->prepare('SET TRANSACTION ISOLATION LEVEL READ COMMITTED')->execute();
我很确定有人支持更改事务隔离,但我似乎不知道如何实现这一点。

文档:

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

有关隔离级别的常量列表,请参阅文档

因此,您可以在每个连接上运行:

$this->getEntityManager()->getConnection()->setTransactionIsolation($level);
如果您希望它是默认值,因此不必在每个连接中都设置它,那么您必须在MySQL服务器的
my.cnf
文件中设置它。看


如果无法全局更改
my.cnf
,则必须使用如上所示的代码行为每个连接自行设置。

谢谢比尔-在Symfony中,doctor.yaml文件用于配置连接,也许我误解了,但我不清楚如何配置应用程序以始终在连接时设置事务隔离