This section describes stored procedures for Cloud SQL instances.
A stored procedure contains SQL code that you can reuse.
To execute a stored procedure, you use the CALL command and replace the
following variable:
- procedure_name is the name of the stored procedure.
CALL procedure_name(parameters);
To create a stored procedure, see CREATE PROCEDURE and CREATE FUNCTION Statements.
Cloud SQL doesn't support the CREATE FUNCTION statement. For more information,
see Unsupported MySQL features for Cloud SQL.
mysql.addSecondaryIdxOnReplica
mysql.addSecondaryIdxOnReplica
Syntax
mysql.addSecondaryIdxOnReplica(IDXTYPE, IDXNAME, TABLENAME, IDXDEFINITION, IDXOPTION)
Description
Adds a secondary index on the database. This stored procedure is a wrapper for the CREATE INDEX DDL statement.
- IDXTYPE – Type of index to create. For example, pass UNIQUE to create a unique index.
- IDXNAME – Name of the index.
- TABLENAME – Name of the table in the format of schema.name.
- IDXDEFINITION – Definition of the index. Do not include outer parentheses.
- IDXOPTION – Any additional options to pass on index creation. For example, in MySQL 8.0, an option could pass INVISIBLE for an invisible index.
mysql.dropSecondaryIdxOnReplica
Syntax
mysql.dropSecondaryIdxOnReplica(IDXNAME, TABLENAME, IDXOPTION)
Description
Drops a secondary index on the database. This stored procedure is a wrapper for the DROP INDEX DDL statement.
- IDXNAME – Name of the index.
- TABLENAME – Name of the table in the format of schema.name.
- IDXOPTION – Any additional options to pass when dropping an index. For example, an algorithm option like INPLACE.
mysql.skipReplicationError
Syntax
mysql.skipReplicationError()
Description
Skips a replication error encountered during external server replication and then resumes replication.
You can run this stored procedure only if you've encountered a replication error and the I/O and SQL threads are stopped.
This stored procedure procedure does the following:
Determines if GTID- or binary log position-based replication is being used.
If parallel replication is being used, then the stored procedure first calls
START_SLAVE_UNTIL_SQL_AFTER_MTS_GAPSorSTART_REPLICA UNTIL_SQL_AFTER_MTS_GAPSto ensure that there are no gaps in applied transactions up to the failed transaction. The procedure then temporarily sets the replication configuration to single-threaded.For binary log position-based replication, the procedure sets
SQL_SLAVE_SKIP_COUNTERorSQL_REPLICA_SKIP_COUNTER = 1to skip the current transaction.For GTID-based replication, the stored procedure determines the GTID of the current failed transaction based on information in the
gtid_executedstatus variable. The procedure then inserts an empty transaction to backfill that GTID.If parallel replication was previously disabled, then parallel replication is re-enabled.
The stored procedure resumes replication.
The table mysql.skip_replication_error_history logs all invocations of this
stored procedure.
What's next
- Learn how to add and drop indexes on Cloud SQL read replicas.