How to create and call stored procedure in MySQL with IN and OUT parameters


Create and Call MySQL stored procedure with IN Parameters

Here is the command to create a MySQL stored procedure with one IN parameter, here we are getting total number of employee by department, dept_id is a foreign key from department table.
mysql> DELIMITER //
mysql> create procedure usp_totalEmployeeByDeparment(IN id INT)
    -> begin
    -> select count(*) as total from employee where dept_id = id;
    -> end//
Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER ;
We have first changed delimiter as // to mark end of stored procedure, and then reverted it back to previous delimiter. Also using “usp” as prefix for user defined stored procedure is one of the SQL best practices to separate system and user stored procedures. Now you can call this stored procedure from MySQL command prompt as :
mysql> call usp_totalEmployeeByDeparment(2);
+-------+
| total |
+-------+
|     1 |
+-------+
1 row in set (0.06 sec)

Creating and Calling MySQL stored procedure with IN and OUT parameters

In this MySQL example, we have created stored procedure usp_GetEmployeeName which takes one IN and one OUT parameter. While calling this stored procedure, you need to pass two parameters, id and name. One would be  input parameter id and other would be output parameter to store result.
mysql> DELIMITER //
mysql> create procedure usp_GetEmployeeName(IN id INT, OUT name VARCHAR(20))
    -> begin
    -> select emp_name into name from employee where emp_id = id;
    -> end//
Query OK, 0 rows affected (0.52 sec)
mysql> DELIMITER ;
mysql> call usp_GetEmployeeName(103, @name);
Query OK, 1 row affected (0.05 sec)
Calling stored procedure from MySQL command line:
mysql> select @name;
+-------+
| @name |
+-------+
| Jack  |
+-------+
1 row in set (0.00 sec)
That's all on How to create and call MySQL stored procedure from command line. In this MySQL tutorial, we have seen examples of creating stored procedure using IN and OUT parameters. These are one of the best way to remember and recall syntax of stored procedure in MySQL database.

Comments

Popular posts from this blog

How can I debug PHP cURL sessions?

Free icons

Where is the security section of google analytics? “Security Issues” section.