Procedure di Mysql

Hari Rabu kemarin, saya dapat tugas dari bos. Dimintai tolong untuk insert record dalam jumlah yang cukup besar. Untungnya, record yang disuruh insert ini sifatnya incremental dan ada juga yang sama isinya.

Sudah cukup lama juga ga berinteraksi dengan database, apalagi saya juga biasanya menggunakan database mysql. setelah buka-buka primbon manualnya mysql dan setelah googling sana sini, akhirnya ide untuk memasukka recordnya pun terwujud.

Pada tutorial ini, yang digunakan adalah model looping. Metoda looping yang digunakan adalah menggunakan while, dan repeat. untuk yang pertama, saya menggunakan while, dan untuk task yang kedua menggunakan repeat. Sengaja saya coba 2 cara ini, sekalian belajar procedure mysql, dan juga sekalian melatih scripting yang sudah mulai lupa-lupa ingat :)


  • Menggunakan while. Pada task ini, idenya adalah, saya ingin menambahkan suatu nomer msisdn berdasarkan range. range nya diketahui yaitu dari 628xxy000000 - 628xxy999999. kalau dumasukkan satu demi satu, tentu cukup repot, karena jumlah yang harus dimasukkan ke db termasuk sangat banyak. untuk algoritma procedure nya adalah sebagai berikut:

delimiter $$
create procedure add_msisdn()
                begin
                    declare a int default 1;
                    simple_loop:LOOP
                      insert into t_msisdn values('628xxy000000'+a);
                      set a=a+1;
                      if a=999999 then
                         LEAVE simple_loop;
                      end if;
                end LOOP simple_loop;
end $$

  • Ide selanjutnya adalah menggunakan repeat. ide nya kurang lebih sama. tapi ini hanya insert biasa dengan nilai value yang sama. berikut ini kodenya :
delimiter $$
drop procedure if exists repeat_loop_proc$$
create procedure repeat_loop_proc()
    begin
        declare a int;
        set a = 0;
        repeat
            insert into t_msisdn (no_msisdn) values('628388000692');
            set a = a+1;
        until a = 3465155 end repeat;       
    end$$ 
  • Cara memanggil procedurenya. setelah procedure dibuat, langkah selanjutnya adalah bagaimana mengeksekusi procedure tersebut. caranya adalah :
CALL nama_procedure()

contohnnya :
CALL repeat_loop_proc()
CALL add_msisdn()
 Demikian share ilmu kali ini. semoga bermanfaat :)

Komentar

Postingan Populer