Procedure,Function,Trigger

Procedure dan Function

Syntax Umum

procedure

Syntak untuk membuat procedure dalam MySQL adalah sebagai berikut.
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body

Function

CREATE
[DEFINER = { user | CURRENT_USER }]
FUNCTION sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body
Keterangan
1. proc_parameter (hanya pada procedure):
[ IN | OUT | INOUT ] param_name type
  • IN parameter dilewatkan ke dalam procedure tetapi modifikasi nilai dari parameter ini tidak kelihatan setelah procedure tersebut dipanggil.
  • Out parameter merupakan parameter yang dilewatkan dari dalam procedure ke pemanggil procedure tersebut. Nilai inisialisasi saat memanggil adalah null dan hasil parameter akan kelihatan setelah procedure dipanggil.
  • INOUT parameter diinisilaisai oleh pemanggil procedure, kemudian hasil modifikasinya tersebut akan kelihatan setelah procedure tersebut dipanggil.
2. characteristic
LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
3. routine_body:
Valid SQL procedure statement
Routine body berisi syntax-syntax sql yang valid, seperti insert atau select. Bisa juga berisi compound. Compount diapit oleh begin… end. Syntax dari compound system adalah sebagai berikut.
[begin_label:] BEGIN
[statement_list]
END [end_label]

Trigers

Syntax Umum Triger

CREATE
[DEFINER = { user | CURRENT_USER }]
TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
Keterangan
  1. DEFINER menunjukkan nama user yang mempunyai hak akses untuk mengakses triger.
  2. Triger_time menunjukkan saat triger tersebut dijalankan. Terdiri dari Before atau After
  3. Triger_time menandakan saat keadaan bagaimana triger tersebut aktif. Terdiri dari
    1. Insert : Triger aktif saat baris baru dimasukkan ke dalam tabel
    2. Update : Triger aktif saat ada baris diperbaharui dimasukkan di dalam tabel
    3. Delete :Triger aktif saat baris dihapus dalam tabel