Basis Data

Create Store Procedure dengan MySQL 5

store procedure merupakan sebuah script/batch. Script ini disimpan dalam pada database, bukan file terpisah. Tidak seperti script biasa, store procedure bisa memiliki parameter input , output dan return values. Untuk MySQL baru bisa disupport untuk MySQL 5 ke atas

Sintaksnya:

CREATE [DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body

CREATE FUNCTION sp_name
[DEFINER = { user | CURRENT_USER }]
([func_parameter[,...]]) RETURNS type [characteristic ...] routine_body

proc_parameter:
[ IN | OUT | INOUT ] param_name type

func_parameter:
param_name type

type:
Any valid MySQL data type

characteristic:
LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string'

routine_body:
Valid SQL procedure statement

Berikut ini merupakan contoh store procedure yang saya buat

DELIMITER //

DROP PROCEDURE IF EXISTS `perusahaan`.`sp_dept` //
CREATE DEFINER=`root`@`localhost`
PROCEDURE `perusahaan`.`sp_dept` ()
BEGIN
SELECT * FROM department;
END

//DELIMITER ;

untuk menjalankan store procedure cara menjalankannya dengan

call sp_name();

untuk conth yang diatas:

call sp_dept

Kelebihan store procedure adalah dia bisa menggunakan input dan output parameter, berikut ini contoh store procedure menggunakan parameter

DELIMITER //

DROP PROCEDURE IF EXISTS `perusahaan`.`sp_insertDepartment` //
CREATE PROCEDURE `perusahaan`.`sp_insertDepartment` (IN dnumber INT ,dname varchar(15))
BEGIN
INSERT INTO Department VALUES (dnumber,dname);
END
//DELIMITER ;

Tujuan dari store procedure adalah mengurangi penulisan query yang sama dengan berulang-ulang. Dengan adanya store procedure kita cukup memanggil store procedure saja

Iklan

3 tanggapan untuk “Create Store Procedure dengan MySQL 5”

  1. Nice article… saya lagi belajar database sekarang… kalau bisa konsep trigernya lebih spesifik lagi di buat.. cuma saran… saya pun masih pemula juga..

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s