-
Tidak:pernyataan majemuk hanya dapat digunakan di dalam isi program yang disimpan.
-
START TRANSACTION;
danCOMMIT;
adalah pernyataan yang terpisah. Jika Anda ingin badan program yang disimpan berisi banyak pernyataan, pernyataan tersebut perlu dilampirkan dalam semacam blok pernyataan majemuk sepertiBEGIN ... END
(yang mirip dengan melampirkan blok pernyataan dalam kurung{ ... }
dalam bahasa seperti C).Yang mengatakan, Anda bisa memiliki program tersimpan yang hanya berisi satu pernyataan
START TRANSACTION;
atauCOMMIT;
—program semacam itu tidak memerlukan blok pernyataan majemuk dan hanya akan memulai transaksi baru / melakukan transaksi saat ini.Di luar program tersimpan, di mana blok pernyataan majemuk tidak diizinkan, Anda dapat mengeluarkan
START TRANSACTION;
danCOMMIT;
pernyataan sebagai &bila diperlukan. -
LOOP
juga merupakan blok pernyataan majemuk, yang hanya valid dalam prosedur tersimpan. Itu tidak perlu untuk melampirkanLOOP
blokir dalamBEGIN ... END
blok, meskipun biasanya (karena jika tidak, sulit untuk melakukan inisialisasi loop yang diperlukan).
Dalam kasus Anda, di mana Anda tampaknya ingin memasukkan data ke dalam tabel dari konstruksi perulangan, Anda harus:
-
tentukan program tersimpan tempat Anda menggunakan
LOOP
; -
mengulangi loop dalam program eksternal yang mengeksekusi kueri basis data pada setiap iterasi; atau
-
mendefinisikan kembali logika Anda dalam hal set di mana SQL dapat langsung beroperasi.