Prosedur tersimpan Cloud SQL

Bagian ini menjelaskan prosedur yang tersimpan untuk instance Cloud SQL.

Prosedur tersimpan berisi kode SQL yang dapat Anda gunakan kembali.

Untuk menjalankan prosedur tersimpan, gunakan perintah CALL dan ganti variabel berikut:

  • procedure_name adalah nama prosedur yang disimpan.
CALL procedure_name(parameters);
Untuk mengetahui informasi selengkapnya, lihat halaman referensi pernyataan CALL.

Untuk membuat prosedur tersimpan, lihat BUAT PROSEDUR dan pernyataan BUAT FUNGSI. Cloud SQL tidak mendukung pernyataan CREATE FUNCTION. Untuk mengetahui informasi selengkapnya, baca Fitur MySQL yang tidak didukung untuk Cloud SQL.

mysql.addSecondaryIdxOnReplica

mysql.addSecondaryIdxOnReplica

Sintaks

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

Deskripsi

Tambahkan indeks sekunder pada database. Prosedur tersimpan ini adalah wrapper untuk pernyataan DDL CREATE INDEX.

  • IDXTYPE – Jenis indeks yang akan dibuat. Contoh, gunakan UNIQUE untuk membuat indeks unik.
  • IDXNAME – Nama indeks.
  • TABLENAME – Nama tabel dalam format schema.name.
  • IDXDEFINITION – Definisi indeks. Jangan sertakan tanda kurung bagian luar.
  • IDXOPTION – Semua opsi tambahan yang akan digunakan pada pembuatan indeks. Misalnya, di MySQL 8.0, sebuah opsi dapat menggunakan INVISIBLE untuk indeks tak terlihat.

mysql.dropSecondaryIdxOnReplica

Sintaks

mysql.dropSecondaryIdxOnReplica(IDXNAME, TABLENAME, IDXOPTION)

Deskripsi

Letakkan indeks sekunder pada database. Prosedur tersimpan ini adalah wrapper untuk pernyataan DDL DROP INDEX.

  • IDXNAME – Nama indeks.
  • TABLENAME – Nama tabel dalam format schema.name.
  • IDXOPTION – Semua opsi tambahan yang akan digunakan saat menurunkan indeks. Misalnya, opsi algoritma seperti INPLACE.

mysql.skipReplicationError

Sintaksis

mysql.skipReplicationError()

Deskripsi

Melewati error replikasi yang terjadi selama replikasi server eksternal lalu melanjutkan replikasi.

Anda dapat menjalankan prosedur tersimpan ini hanya jika Anda mengalami error replikasi dan thread I/O dan SQL dihentikan.

Prosedur tersimpan ini melakukan hal berikut:

  1. Menentukan apakah replikasi berbasis GTID atau posisi log biner sedang digunakan.

  2. Jika replikasi paralel digunakan, prosedur tersimpan akan memanggil START_SLAVE_UNTIL_SQL_AFTER_MTS_GAPS atau START_REPLICA UNTIL_SQL_AFTER_MTS_GAPS terlebih dahulu untuk memastikan tidak ada kesenjangan dalam transaksi yang diterapkan hingga transaksi yang gagal. Kemudian, prosedur ini akan menyetel konfigurasi replikasi ke single-threaded untuk sementara.

  3. Untuk replikasi berbasis posisi log biner, prosedur ini menetapkan SQL_SLAVE_SKIP_COUNTER atau SQL_REPLICA_SKIP_COUNTER = 1 untuk melewati transaksi saat ini.

  4. Untuk replikasi berbasis GTID, prosedur tersimpan menentukan GTID transaksi saat ini yang gagal berdasarkan informasi dalam variabel status gtid_executed. Kemudian, prosedur akan menyisipkan transaksi kosong untuk mengisi kembali GTID tersebut.

  5. Jika replikasi paralel sebelumnya dinonaktifkan, maka replikasi paralel akan diaktifkan kembali.

  6. Prosedur tersimpan melanjutkan replikasi.

Tabel mysql.skip_replication_error_history mencatat semua pemanggilan prosedur tersimpan ini.

Langkah berikutnya