Sep 032009
 
Kelanjutan dari tutorial sebelumnya selain Trigger di MySQL yang baru juga terdapat procedure. Pertama buat sebuah tabel di MySQL kamu.
Code :
CREATE
TABLE tbl_stock (
kode char(2) NOT NULL,
nama varchar(20) default NULL,
jumlah int(11) NOT NULL default ‘0’,
harga double(15,3) NOT NULL default ‘0.000’,
total double(15,3) default NULL,
PRIMARY KEY
(kode)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
Pada kasus kali ini kita akan melakukan perhitungan di tbl_stock yaitu pada field total yang akan otomatis melakukan perkalian pada saat kita melakukan isi dan edit data. Pada procedure yang kita buat akan otomatis melakukan perhitungan dan mengetahui apakah data tersebut akan di Edit ada tambah data.
Code :
CREATE
PROCEDURE pr_isi_stock(IN kode_in char(2), IN nama_in VARCHAR(20), IN jumlah_in
INT, IN harga_in DOUBLE)
BEGIN
DECLARE ada INT;
SELECT COUNT(*) INTO ada from tbl_stock where kode=kode_in;
IF ada=0 then BEGIN
–Tambah baru
insert into tbl_stock values(kode_in,nama_in,jumlah_in,harga_in,(jumlah_in*harga_in));
END;
ELSE
–Edit data yang sudah ada
update tbl_stock set nama=nama_in, jumlah=jumlah_in,
harga=harga_in, total=jumlah_in*harga_in where kode=kode_in;
END IF;
END;
Untuk memanggil Procedure di atas dapat menggunakan perintah call nm_procedure

Kelanjutan dari tutorial sebelumnya selain Trigger di MySQL yang baru juga terdapat procedure. Pertama buat sebuah tabel di MySQL kamu.

Code :

CREATE
TABLE <code>tbl_stock</code> (
<code>kode</code> char(2) NOT NULL,
<code>nama</code> varchar(20) default NULL,
<code>jumlah</code> int(11) NOT NULL default '0',
<code>harga</code> double(15,3) NOT NULL default '0.000',
<code>total</code> double(15,3) default NULL,
PRIMARY KEY
(<code>kode</code>)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;

Pada kasus kali ini kita akan melakukan perhitungan di tbl_stock yaitu pada field total yang akan otomatis melakukan perkalian pada saat kita melakukan isi dan edit data. Pada procedure yang kita buat akan otomatis melakukan perhitungan dan mengetahui apakah data tersebut akan di Edit ada tambah data.

Code :

CREATE
PROCEDURE pr_isi_stock(IN kode_in char(2), IN nama_in VARCHAR(20), IN jumlah_in
INT, IN harga_in DOUBLE)
BEGIN
DECLARE ada INT;
SELECT COUNT(*) INTO ada from tbl_stock where kode=kode_in;
IF ada=0 then BEGIN
--Tambah baru
insert into tbl_stock values(kode_in,nama_in,jumlah_in,harga_in,(jumlah_in*harga_in));
END;
ELSE
--Edit data yang sudah ada
update tbl_stock set nama=nama_in, jumlah=jumlah_in,
harga=harga_in, total=jumlah_in*harga_in where kode=kode_in;
END IF;
END;

Untuk memanggil Procedure di atas dapat menggunakan perintah call nm_procedure

Hasil

Hasil

Facebook Comments

  25 Responses to “Create procedure in MYSQL”

  1. ssiiippp siipp
    ilmunya sangat membantu..

  2. kalo bikin errornya gimana y?

    maksudnya prosedure trus didalemnya dibuat pengecekan, nah jika pengecekan tidak valid, maka akan menampilkan error

    😀

  3. Dulu pernah buat tapi pake PostgreSQL dengan memanfaatkan rule, tapi kalo dengan MYSQL belum pernah coba. Nanti coba saya coba saja kalo bisa segera saya kabari pren

  4. Some very good ideas. Reminded me of some things I know and other tips which I could try. Thanks for the post.

  5. gmn caranya membuat perhitungan atau penjumlahan antar kolom yang hasilnya di buat di dalam kolom baru

    makasi sebelumnya

  6. @ pandapotan pardede (slazh pardede):
    itu sih gampang kali…, gak usah pake store procedure..

    select nama_kolom_1, nama_kolom_2, (nama_kolom_1+nama_kolom_2) as nama_terserah
    from nama_table
    group by nama_kolom_1,nama_kolom_2
    order by nama_kolom_1,nama_kolom_2

    lain kali coba cek google dulu ya mas, google lebih hebat dari yang anda fikir..

  7. @ mbahsomo:

    mbah.. kok cuma ngasih tau info lewat console CMD,
    kasih tau juga dong yang lewat browser PHPMyAdmin juga atau Console Browser MySQL
    mbah kan hebat..

  8. Terimakasih sebelumnya buat semuanya terutama buat mas ical
    lagi belum sempat nulis2 lagi nih, nanti kalo ada waktu akan di lanjut cerita tentang MYSQL nya 😀

  9. ni cara execute nya gimana?
    sama kayak trigger atau musti di panggil via program vb?cara panggil via coding vb gimna?

  10. @ jojon:
    untuk execute dengan cara

    call nm_procedure ;
    

    cara manggilnya bisa dari program yang sampean buat

  11. sip gan..
    thanx infonya sangat membantu..

  12. @ Nico:
    Terimakasih kembali mas

  13. suwon choyy!!

  14. @ vicky:
    Sama – sama pren

  15. Mbah…..
    saya coba buat 5 event, yang dijalankan setiap hari (tengah malam)sekitar jam 01.00-01.30. Dan sy kasih selisih dengan tenggat waktu 3-4 menit per event tsb. Tapi kenapa yang mysql meng-eksekusi nya setiap pukul 04.30 ?? itu apa ya sebabnya?
    mohon pencerahan.

  16. @bingung
    bisa di jelaskan script di exekusi di server atau dari client ?

  17. script event nya di eksekusi dari client sepertinya Mbah..
    karena sy setting definer nya user@100.100.1.%,,
    jadi bagaimana Mbah?
    terimakasih.

  18. @bingung
    Programnya desktop atau web base.
    Perhatian user loginya mas.
    Pake % atau localhost

  19. pake % Mbah..
    apa pengaruh dari banyaknya transaksi data yg connect ke database?

  20. harusnya tidak mas,
    sudah check di privalage untuk trigger nya mas

  21. sudah mbah di check semua privilage event nya.
    ya sudah mbah ga apa2.. trims, sudah mau membantu ya 🙂

  22. @bingung siap mas

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(required)

(required)