Bahasa SQL‎ > ‎

Penggunaan Delimiter di MySQL

Pada saat kita mendefinisikan objek yang tersimpan di database MySQL seperti stored procedure, trigger maupun function, ada problem yang akan muncul yaitu penggunaan titik koma ( ; ) pada statement SQL yang merupakan bagian dari objek tersebut. 

Kenapa begitu ? Karena MySQL secara default menganggap titik koma ( ; ) sebagai delimiter / pembatas akhir dari suatu perintah / statement. Akhirnya pembuatan objek yang memiliki beberapa statement tidak akan berjalan sempurna karena "berhenti di tengah jalan".

Solusi terhadap masalah di atas adalah menggunakan delimiter selain tanda titik koma ( ; ) misalkan dengan garis pipa ( | ). Penggunaannya sangat sederhana, sebelum mendefinisikan objek tersebut kita gunakan statement "DELIMITER" diikuti tanda pemisah baru. Setelah di akhir pendefinisian kita kembalikan delimiter lagi kepada tanda titik koma.

Contoh Penggunaan :

  1. DELIMITER |
  2.  
  3. CREATE TRIGGER hapus_tr_penjualan AFTER DELETE
  4.     ON tr_penjualan FOR EACH ROW
  5. BEGIN
  6.   INSERT INTO tr_penjualan_hapus
  7.         (       tgl_transaksi,
  8.                 kode_cabang,
  9.                 kode_kasir,
  10.                 kode_item,
  11.                 kode_produk,
  12.                 jumlah_pembelian,
  13.                 tgl_perubahan,
  14.                 nama_user
  15.         )
  16.   VALUES
  17.         (       OLD.tgl_transaksi,
  18.                 OLD.kode_cabang,
  19.                 OLD.kode_kasir,
  20.                 OLD.kode_item,
  21.                 OLD.kode_produk,
  22.                 OLD.jumlah_pembelian,
  23.                 SYSDATE(),
  24.                 CURRENT_USER
  25.         );
  26. END;
  27.  
  28. |
  29.  
  30. DELIMITER ;

Keterangan Contoh :

Terlihat pada baris 1 delimiter / pemisah tanda garis pipa ( | ) digunakan sebelum pendefinisian trigger "hapus_tr_penjualan". Dan setelah pendefinisian selesai dilakukan maka tanda titik koma dikembalikan sebagai delimiter seperti terlihat pada baris 30.


Comments