Procédures stockées dans Cloud SQL

Cette section décrit les procédures stockées pour les instances Cloud SQL.

Une procédure stockée contient un code SQL que vous pouvez réutiliser.

.

Pour exécuter une procédure stockée, utilisez la commande CALL et remplacez la variable suivante :

  • procedure_name est le nom de la procédure stockée.
CALL procedure_name(parameters);
Pour en savoir plus, consultez la page de référence de l'instruction CALL.

Pour créer une procédure stockée, consultez les instructions CREATE PROCEDURE et CREATE FUNCTION. Cloud SQL n'est pas compatible avec l'instruction CREATE FUNCTION. Pour en savoir plus, consultez la page Fonctionnalités MySQL non compatibles avec Cloud SQL.

mysql.addSecondaryIdxOnReplica

mysql.addSecondaryIdxOnReplica

Syntaxe

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

Description

Ajoute un index secondaire à la base de données. Cette procédure stockée est un wrapper pour l'instruction LDD CREATE INDEX.

  • IDXTYPE : type d'index à créer. Par exemple, transmettez UNIQUE pour créer un index unique.
  • IDXNAME : nom de l'index.
  • TABLENAME : nom de la table au format schema.name.
  • IDXDEFINITION : définition de l'index. N'incluez pas de parenthèses externes.
  • IDXOPTION : options supplémentaires à transmettre lors de la création de l'index. Par exemple, dans MySQL 8.0, une option pouvait transmettre INVISIBLE pour un index invisible.

mysql.dropSecondaryIdxOnReplica

Syntaxe

mysql.dropSecondaryIdxOnReplica(IDXNAME, TABLENAME, IDXOPTION)

Description

Supprime un index secondaire de la base de données. Cette procédure stockée est un wrapper pour l'instruction LDD DROP INDEX.

  • IDXNAME : nom de l'index.
  • TABLENAME : nom de la table au format schema.name.
  • IDXOPTION : toutes les options supplémentaires à transmettre lors de la suppression d'un index. Par exemple, une option d'algorithme telle que INPLACE.

mysql.skipReplicationError

Syntaxe

mysql.skipReplicationError()

Description

Ignore une erreur de réplication rencontrée lors de la réplication du serveur externe puis reprend la réplication.

Vous ne pouvez exécuter cette procédure stockée que si vous avez rencontré une erreur de réplication et que les threads d'E/S et SQL sont arrêtés.

Cette procédure stockée effectue les opérations suivantes :

  1. Détermine si la réplication basée sur GTID ou sur la position du journal binaire est utilisée.

  2. Si la réplication parallèle est utilisée, la procédure stockée appelle d'abord START_SLAVE_UNTIL_SQL_AFTER_MTS_GAPS ou START_REPLICA UNTIL_SQL_AFTER_MTS_GAPS pour s'assurer qu'il n'y a pas d'écart dans les transactions appliquées jusqu'à la transaction ayant échoué. La procédure définit ensuite temporairement la configuration de réplication sur un seul thread.

  3. Pour la réplication basée sur la position du journal binaire, la procédure définit SQL_SLAVE_SKIP_COUNTER ou SQL_REPLICA_SKIP_COUNTER = 1 pour ignorer la transaction actuelle.

  4. Pour la réplication basée sur GTID, la procédure stockée détermine le GTID de la transaction ayant échoué en fonction des informations de la variable d'état gtid_executed. La procédure insère ensuite une transaction vide pour remplir ce GTID.

  5. Si la réplication parallèle était précédemment désactivée, elle est réactivée.

  6. La procédure stockée reprend la réplication.

La table mysql.skip_replication_error_history enregistre tous les appels de cette procédure stockée.

Étape suivante