mysql create procedure in_MySQL – How to Create Stored Procedure in MySQL_MySQL

MySQL supports Stored Procedures which can execute set of codes by applying relevant business logics. In this post we will see how to create a stored procedure and execute it.

Let us create the following tablesCREATE TABLE items(item_id INT, item_description VARCHAR(100));

CREATE TABLE sales(sales_id INT auto_increment KEY,item_id INT, sales_date DATETIME, sales_amount DECIMAL(12,2));

INSERT INTO items VALUES (1,'Television');

INSERT INTO items VALUES (2,'Mobile');

INSERT INTO items VALUES (3,'laptop');

INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (1,'2014-01-01',1200);

INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (2,'2014-01-02',200);

INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (3,'2014-01-09',1700);

INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (3,'2014-01-29',1700);

INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (3,'2014-02-11',1700);

INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (1,'2014-02-16',1200);

INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (2,'2014-02-16',200);

INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (2,'2014-02-20',200);

INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (2,'2014-02-20',200);

INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (2,'2014-02-22',200);

INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (3,'2014-02-24',1700);

INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (1,'2014-02-24',1200);

Suppose you want to create a stored procedure which will accept item_description and returns the total sales_amount for theenireperiod, you can do it as shown belowDELIMITER $$

CREATE PROCEDURE Test.usp_get_sales

(

param_item_description VARCHAR(100)

)

BEGIN

SELECT item_description,SUM(sales_amount) AS sales_amount FROM items NATURAL

JOIN sales

WHERE item_description=param_item_description

GROUP BY item_description;

END;

$$

DELIMITER;

Note that the creation of the stored procedure starts with setting the Delimiter $$. The default delimiter for MySQL statements are semicolon so in order to instruct the MySQL engine about the start and end of the stored procedure block, you need to use a different delimiter (which in this case $$ is used).

Now you can execute a stored procedure usingCALL keywordas shown below.

Execution 1CALL usp_get_sales('Television');

When you execute the above code, the result isItem_description sales_amountTelevision 3600.00

Execution 2CALL usp_get_sales('laptop');

When you execute the above code, the result isItem_description sales_amountlaptop 6800.00

Note:The parameters do not start with @ like we use in SQL Server. So in order todifferentiatebetween the actual column name and parameter name, the name param_item_description is used. You may need to use different naming conventions as you like.

I have previously written a similar article here: MySQL – How to Create Stored Procedure.

Reference:Pinal Dave (http://blog.sqlauthority.com)

相关标签:

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值