Cloud SQL 預存程序

本節說明 Cloud SQL 執行個體的預存程序。

預存程序包含可重複使用的 SQL 程式碼。

如要執行預存程序,請使用 CALL 指令,並取代下列變數:

  • procedure_name 是預存程序的名稱。
CALL procedure_name(parameters);
詳情請參閱 CALL 陳述式參考頁面。

如要建立預存程序,請參閱「CREATE PROCEDURE 和 CREATE FUNCTION 陳述式」。Cloud SQL 不支援 CREATE FUNCTION 陳述式。詳情請參閱「Cloud SQL 不支援的 MySQL 功能」。

mysql.addSecondaryIdxOnReplica

mysql.addSecondaryIdxOnReplica

語法

mysql.addSecondaryIdxOnReplica(IDXTYPE, IDXNAME, TABLENAME, IDXDEFINITION, IDXOPTION)

說明

在資料庫中新增次要索引。這個預存程序是 CREATE INDEX DDL 陳述式的包裝函式。

  • IDXTYPE:要建立的索引類型。舉例來說,傳遞 UNIQUE 即可建立專屬索引。
  • IDXNAME – 索引名稱。
  • TABLENAME:資料表名稱,格式為 schema.name。
  • IDXDEFINITION:索引的定義。請勿加入外層括號。
  • IDXOPTION - 傳遞索引建立作業的任何其他選項。舉例來說,在 MySQL 8.0 中,選項可以為隱形索引傳遞 INVISIBLE。

mysql.dropSecondaryIdxOnReplica

語法

mysql.dropSecondaryIdxOnReplica(IDXNAME, TABLENAME, IDXOPTION)

說明

捨棄資料庫中的次要索引。這個預存程序是 DROP INDEX DDL 陳述式的包裝函式。

  • IDXNAME – 索引名稱。
  • TABLENAME:資料表名稱,格式為 schema.name。
  • IDXOPTION - 捨棄索引時要傳遞的任何其他選項。例如 INPLACE 等演算法選項。

mysql.skipReplicationError

語法

mysql.skipReplicationError()

說明

略過外部伺服器複製作業期間發生的複製錯誤,然後繼續複製作業。

只有在發生複製錯誤,且 I/O 和 SQL 執行緒已停止時,才能執行這個預存程序。

這個預存程序會執行下列動作:

  1. 判斷是否使用以 GTID 或二進位記錄位置為基礎的複寫功能。

  2. 如果使用平行複製,預存程序會先呼叫 START_SLAVE_UNTIL_SQL_AFTER_MTS_GAPSSTART_REPLICA UNTIL_SQL_AFTER_MTS_GAPS,確保套用的交易在失敗交易之前沒有間隙。然後,程序會暫時將複製設定設為單一執行緒。

  3. 如果是以二進位記錄位置為準的複寫作業,程序會設定 SQL_SLAVE_SKIP_COUNTERSQL_REPLICA_SKIP_COUNTER = 1,略過目前的交易。

  4. 如果是以 GTID 為基礎的複製功能,預存程序會根據 gtid_executed 狀態變數中的資訊,判斷目前失敗交易的 GTID。然後,程序會插入空白交易,以回填該 GTID。

  5. 如果先前停用平行複製功能,系統會重新啟用平行複製功能。

  6. 預存程序會繼續複製作業。

這個表格會記錄所有對這個預存程序的呼叫。mysql.skip_replication_error_history

後續步驟