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

Leave a Reply