全部產品
Search
文件中心

:RDS MySQL 5.6 版本GTID特性對暫存資料表限制的處理方法

更新時間:Feb 28, 2024

問題描述

RDS MySQL 5.6版本中,GTID特性對暫存資料表進行了限制,導致報錯內容如下。

When @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1, the statements CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE can be executed in a non-transactional context only, and require that AUTOCOMMIT = 1.
說明

開啟GTID後,5.7和5.8版本支援事務中使用暫存資料表,且binlog_format必須設定為ROW格式(RDS預設ROW格式)。

解決辦法

您可以根據實際情況,選擇如下的解決方案。

  • create temporary table語句更改為create table,使用普通表替代暫存資料表。

  • 修改代碼,將暫存資料表的建立和刪除操作放在事務外,並且保證會話的參數為autocommit=1

適用於

雲資料庫RDS MySQL版