Procedimentos armazenados do Cloud SQL

Nesta seção, descrevemos os procedimentos armazenados para instâncias do Cloud SQL.

Um procedimento armazenado é um código SQL que pode ser reutilizado

Para executar o procedimento armazenado, use o comando CALL e substitua a seguinte variável.

  • procedure_name é o nome do procedimento armazenado.
CALL procedure_name(parameters);
Para mais informações, consulte a página de referência da instrução CALL.

Para criar um procedimento armazenado, consulte Instruções CREATE PROCEDURE e CREATE FUNCTION. O Cloud SQL não é compatível com a instrução CREATE FUNCTION. Para mais informações, consulte Recursos MySQL não compatíveis com o Cloud SQL.

mysql.addSecondaryIdxOnReplica

mysql.addSecondaryIdxOnReplica

Sintaxe

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

Descrição

Adiciona um índice secundário no banco de dados. Este procedimento armazenado é um wrapper para a instrução DDL CRIAR ÍNDICE.

  • IDXTYPE: tipo de índice a ser criado. Por exemplo, transmita UNIQUE para criar um índice exclusivo.
  • IDXNAME: nome do índice.
  • TABLENAME: nome da tabela no formato schema.name.
  • IDXDEFINITION: definição do índice. Não inclua parênteses externos.
  • IDXOPTION: qualquer outra opção para transmitir a criação do índice. Por exemplo, no MySQL 8.0, uma opção poderia transmitir INVISIBLE para um índice invisível.

mysql.dropSecondaryIdxOnReplica

Sintaxe

mysql.dropSecondaryIdxOnReplica(IDXNAME, TABLENAME, IDXOPTION)

Descrição

Descarta um índice secundário no banco de dados. Este procedimento armazenado é um wrapper para a instrução DDL DESCARTAR ÍNDICE.

  • IDXNAME: nome do índice.
  • TABLENAME: nome da tabela no formato schema.name.
  • IDXOPTION: qualquer outra opção a ser transmitida ao descartar um índice. Por exemplo, uma opção de algoritmo, como INPLACE.

mysql.skipReplicationError

Sintaxe

mysql.skipReplicationError()

Descrição

Ignora um erro de replicação encontrado durante a replicação do servidor externo e retoma a replicação.

Você só pode executar esse procedimento armazenado se tiver encontrado um erro de replicação e as linhas de execução de E/S e SQL estiverem interrompidas.

Esse procedimento armazenado faz o seguinte:

  1. Determina se a replicação baseada em GTID ou posição do registro binário está sendo usada.

  2. Se a replicação paralela estiver sendo usada, o procedimento armazenado primeiro vai chamar START_SLAVE_UNTIL_SQL_AFTER_MTS_GAPS ou START_REPLICA UNTIL_SQL_AFTER_MTS_GAPS para garantir que não haja lacunas nas transações aplicadas até a transação com falha. Em seguida, o procedimento define temporariamente a configuração de replicação como de uma única linha de execução.

  3. Para replicação baseada em posição do registro binário, o procedimento define SQL_SLAVE_SKIP_COUNTER ou SQL_REPLICA_SKIP_COUNTER = 1 para ignorar a transação atual.

  4. Para a replicação baseada em GTID, o procedimento armazenado determina o GTID da transação com falha atual com base nas informações da variável de status gtid_executed. Em seguida, o procedimento insere uma transação vazia para preencher esse GTID.

  5. Se a replicação paralela tiver sido desativada antes, ela será reativada.

  6. O procedimento armazenado retoma a replicação.

A tabela mysql.skip_replication_error_history registra todas as invocações desse procedimento armazenado.

A seguir