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 .

