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 variabile seguente:

  • procedure_name è il nome della stored procedure.
CALL procedure_name(parameters);
Per ulteriori informazioni, 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: il nome dell'indice.
  • TABLENAME: nome della tabella nel formato schema.name.
  • IDXDEFINITION: definizione dell'indice. Non includere le parentesi esterne.
  • IDXOPTION: eventuali opzioni aggiuntive da trasmettere 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: il nome dell'indice.
  • TABLENAME: nome della tabella nel formato schema.name.
  • IDXOPTION: eventuali opzioni aggiuntive da passare quando viene eliminato un indice. Ad esempio, un'opzione dell'algoritmo come INPLACE.

mysql.skipReplicationError

Sintassi

mysql.skipReplicationError()

Descrizione

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

Puoi eseguire questa stored procedure solo se si è verificato un errore di replica e i thread I/O e SQL sono 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 ignorare 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 riempire il 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 chiamate di questa stored procedure.

Passaggi successivi