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

~ by halidaernita on May 30, 2008.

Leave a Reply