當我在CodeIgniter中使用$this->db->trans_start();
時,它使用讀提交隔離級別啓動一個事務。我想使用可序列化的隔離級別,但trans_start
似乎不允許我設置它。如何更改CodeIgniter中事務的隔離級別?
如何在CodeIgniter中設置事務的事務級別?
當我在CodeIgniter中使用$this->db->trans_start();
時,它使用讀提交隔離級別啓動一個事務。我想使用可序列化的隔離級別,但trans_start
似乎不允許我設置它。如何更改CodeIgniter中事務的隔離級別?
如何在CodeIgniter中設置事務的事務級別?
使用SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
在查詢交易開始後右:
$this->db->trans_start();
$this->db->query('SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;');
我認爲你應該使用SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE
如果你想在交易過程中做到這一點
否則
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
並將其設置爲前開始交易是這樣的:
$this->db->query('SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;');
$this->db->trans_start();
下面是從文檔複製粘貼:
隨着全球關鍵字,語句接下來的所有會話的默認事務 全球水平。現有會議 不受影響。
使用SESSION關鍵字,語句爲當前 會話中執行的所有後續事務設置默認事務 級別。
如果沒有任何SESSION或GLOBAL關鍵字,語句會爲當前會話中執行的下一個(未啓動)事務 設置隔離級別 。沒有全局或會話
SET事務隔離級別是不是允許 而有活躍的交易
我試圖左右逢源,並將其設置** **之前的交易並沒有爲我工作。也許交易開始一個新的會議? 使用SET SESSION,在**開始事務之後,只需設置**即可正常工作。 – franer