Di MySQL, saya memiliki prosedur tersimpan ini dengan loop For di dalamnya:
DELIMITER $$
CREATE PROCEDURE ABC()
BEGIN
DECLARE a INT Default 0 ;
simple_loop: LOOP
SET a=a+1;
select a;
IF a=5 THEN
LEAVE simple_loop;
END IF;
END LOOP simple_loop;
END $$
Itu selalu dicetak 1
. Apa sintaks yang benar untuk MySQL for loop?
Jawaban:
sumber
BEGIN...END
dan membuat prosedur jika saya hanya ingin menggunakanLOOP
?Sedangkan contoh sintaks loop di MySQL:
Yang mencetak:
Contoh sintaks loop REPEAT di MySQL:
Yang mencetak:
UNTUK contoh sintaks loop di MySQL:
Yang mencetak:
Lakukan tutorial: http://www.mysqltutorial.org/stored-procedures-loop.aspx
Jika saya mengetahui Anda mendorong konstruksi for-loop MySQL semacam ini ke dalam produksi, saya akan menembak Anda dengan peluncur rudal busa. Anda dapat menggunakan kunci pipa untuk memasang paku, tetapi hal itu akan membuat Anda terlihat konyol.
sumber
declare str VARCHAR(255) default '';
di konsol MySQL (5.6) memberi saya pesan kesalahanError 1064 (42000): ... for the right syntax to use near '' at line 3
, yang sejelas mud (meskipun saya berasumsi itu tidak menyukai klausa DEFAULT).delimiter //
sebelum menjalankan ini.Asumsikan Anda memiliki satu tabel dengan nama 'table1'. Ini berisi satu kolom 'col1' dengan tipe varchar. Query to crate table diberikan di bawah ini
Sekarang jika Anda ingin memasukkan angka dari 1 hingga 50 dalam tabel itu, gunakan prosedur tersimpan berikut
Untuk memanggil penggunaan prosedur tersimpan itu
sumber
Anda bisa menukar variabel lokal ini dengan global, itu akan lebih mudah.
sumber