Procedure memorizzate Cloud SQL

Questa sezione descrive le stored procedure per le istanze Cloud SQL.

Una stored procedure contiene codice SQL che puoi riutilizzare.

Per eseguire una stored procedure, utilizza il comando CALL e sostituisci la seguente variabile:

  • procedure_name è il nome della stored procedure.
CALL procedure_name(parameters);
Per saperne di più, consulta la pagina di riferimento dell'istruzione CALL.

Per creare una stored procedure, consulta Istruzioni CREATE PROCEDURE e CREATE FUNCTION. Cloud SQL non supporta l'istruzione CREATE FUNCTION. Per saperne di più, consulta Funzionalità MySQL non supportate per Cloud SQL.

mysql.addSecondaryIdxOnReplica

mysql.addSecondaryIdxOnReplica

Sintassi

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

Descrizione

Aggiunge un indice secondario al database. Questa stored procedure è un wrapper per l'istruzione DDL CREATE INDEX.

  • IDXTYPE: tipo di indice da creare. Ad esempio, passa UNIQUE per creare un indice univoco.
  • IDXNAME: nome dell'indice.
  • TABLENAME – Nome della tabella nel formato schema.nome.
  • IDXDEFINITION: definizione dell'indice. Non includere le parentesi esterne.
  • IDXOPTION – eventuali opzioni aggiuntive da passare alla creazione dell'indice. Ad esempio, in MySQL 8.0, un'opzione potrebbe passare INVISIBLE per un indice invisibile.

mysql.dropSecondaryIdxOnReplica

Sintassi

mysql.dropSecondaryIdxOnReplica(IDXNAME, TABLENAME, IDXOPTION)

Descrizione

Elimina un indice secondario nel database. Questa stored procedure è un wrapper per l'istruzione DDL DROP INDEX.

  • IDXNAME: nome dell'indice.
  • TABLENAME – Nome della tabella nel formato schema.nome.
  • IDXOPTION – eventuali opzioni aggiuntive da passare quando si elimina un indice. Ad esempio, un'opzione di algoritmo come INPLACE.

mysql.skipReplicationError

Sintassi

mysql.skipReplicationError()

Descrizione

Salta un errore di replica rilevato durante la replica del server esterno e poi riprende la replica.

Puoi eseguire questa stored procedure solo se hai riscontrato un errore di replica e i thread I/O e SQL sono stati arrestati.

Questa stored procedure esegue le seguenti operazioni:

  1. Determina se viene utilizzata la replica basata su GTID o sulla posizione del log binario.

  2. Se viene utilizzata la replica parallela, la stored procedure chiama prima START_SLAVE_UNTIL_SQL_AFTER_MTS_GAPS o START_REPLICA UNTIL_SQL_AFTER_MTS_GAPS per assicurarsi che non ci siano lacune nelle transazioni applicate fino alla transazione non riuscita. La procedura imposta temporaneamente la configurazione della replica su single-threaded.

  3. Per la replica basata sulla posizione del log binario, la procedura imposta SQL_SLAVE_SKIP_COUNTER o SQL_REPLICA_SKIP_COUNTER = 1 per saltare la transazione corrente.

  4. Per la replica basata su GTID, la stored procedure determina il GTID della transazione non riuscita corrente in base alle informazioni nella variabile di stato gtid_executed. La procedura inserisce quindi una transazione vuota per eseguire il backfill di questo GTID.

  5. Se la replica parallela era stata disattivata in precedenza, viene riattivata.

  6. La stored procedure riprende la replica.

La tabella mysql.skip_replication_error_history registra tutte le invocazioni di questa stored procedure.

Passaggi successivi