> 데이터 베이스 > MySQL 튜토리얼 > MySQL – How to Create Stored Procedure in MySQL_MySQL

MySQL – How to Create Stored Procedure in MySQL_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-01 13:16:33
원래의
964명이 탐색했습니다.

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 tables

CREATE TABLE items(item_id INT, item_description VARCHAR(100));<br> CREATE TABLE sales(sales_id INT auto_increment KEY,item_id INT, sales_date DATETIME, sales_amount DECIMAL(12,2));<br> INSERT INTO items VALUES (1,'Television');<br> INSERT INTO items VALUES (2,'Mobile');<br> INSERT INTO items VALUES (3,'laptop');<br> INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (1,'2014-01-01',1200);<br> INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (2,'2014-01-02',200);<br> INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (3,'2014-01-09',1700);<br> INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (3,'2014-01-29',1700);<br> INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (3,'2014-02-11',1700);<br> INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (1,'2014-02-16',1200);<br> INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (2,'2014-02-16',200);<br> INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (2,'2014-02-20',200);<br> INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (2,'2014-02-20',200);<br> INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (2,'2014-02-22',200);<br> INSERT INTO sales(item_id,sales_date,sales_amount) VALUES (3,'2014-02-24',1700);<br> 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 below

DELIMITER $$<br> CREATE PROCEDURE Test.usp_get_sales<br> (<br> param_item_description VARCHAR(100)<br> )<br> BEGIN<br> SELECT item_description,SUM(sales_amount) AS sales_amount FROM items NATURAL<br> JOIN sales<br> WHERE item_description=param_item_description<br> GROUP BY item_description;<br> END;<br> $$<br> DELIMITER;<br>

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 1

CALL usp_get_sales('Television');

When you execute the above code, the result is

Item_description sales_amountTelevision 3600.00
로그인 후 복사

Execution 2

CALL usp_get_sales('laptop');

When you execute the above code, the result is

Item_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.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿