<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=MySQL_Tutorial%2FProcedure_Function%2FProcedure</id>
		<title>MySQL Tutorial/Procedure Function/Procedure - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=MySQL_Tutorial%2FProcedure_Function%2FProcedure"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=MySQL_Tutorial/Procedure_Function/Procedure&amp;action=history"/>
		<updated>2026-04-04T04:00:32Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=MySQL_Tutorial/Procedure_Function/Procedure&amp;diff=708&amp;oldid=prev</id>
		<title> в 13:44, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=MySQL_Tutorial/Procedure_Function/Procedure&amp;diff=708&amp;oldid=prev"/>
				<updated>2010-05-26T13:44:56Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:44, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=MySQL_Tutorial/Procedure_Function/Procedure&amp;diff=709&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=MySQL_Tutorial/Procedure_Function/Procedure&amp;diff=709&amp;oldid=prev"/>
				<updated>2010-05-26T09:53:31Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== ALTER PROCEDURE and ALTER FUNCTION Syntax==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This statement can be used to change the characteristics of a stored procedure or function.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;More than one change may be specified in an ALTER PROCEDURE or ALTER FUNCTION statement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
ALTER {PROCEDURE | FUNCTION} sp_name [characteristic ...]&lt;br /&gt;
characteristic:&lt;br /&gt;
    { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }&lt;br /&gt;
  | SQL SECURITY { DEFINER | INVOKER }&lt;br /&gt;
  | COMMENT &amp;quot;string&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Calling a Single-Statement Procedure==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Employee(&lt;br /&gt;
    -&amp;gt;     id            int,&lt;br /&gt;
    -&amp;gt;     first_name    VARCHAR(15),&lt;br /&gt;
    -&amp;gt;     last_name     VARCHAR(15),&lt;br /&gt;
    -&amp;gt;     start_date    DATE,&lt;br /&gt;
    -&amp;gt;     end_date      DATE,&lt;br /&gt;
    -&amp;gt;     salary        FLOAT(8,2),&lt;br /&gt;
    -&amp;gt;     city          VARCHAR(10),&lt;br /&gt;
    -&amp;gt;     description   VARCHAR(15)&lt;br /&gt;
    -&amp;gt; );&lt;br /&gt;
Query OK, 0 rows affected (0.08 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;              values (1,&amp;quot;Jason&amp;quot;,    &amp;quot;Martin&amp;quot;,  &amp;quot;19960725&amp;quot;,  &amp;quot;20060725&amp;quot;, 1234.56, &amp;quot;Toronto&amp;quot;,  &amp;quot;Programmer&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(2,&amp;quot;Alison&amp;quot;,   &amp;quot;Mathews&amp;quot;,  &amp;quot;19760321&amp;quot;, &amp;quot;19860221&amp;quot;, 6661.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(3,&amp;quot;James&amp;quot;,    &amp;quot;Smith&amp;quot;,    &amp;quot;19781212&amp;quot;, &amp;quot;19900315&amp;quot;, 6544.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(4,&amp;quot;Celia&amp;quot;,    &amp;quot;Rice&amp;quot;,     &amp;quot;19821024&amp;quot;, &amp;quot;19990421&amp;quot;, 2344.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Manager&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(5,&amp;quot;Robert&amp;quot;,   &amp;quot;Black&amp;quot;,    &amp;quot;19840115&amp;quot;, &amp;quot;19980808&amp;quot;, 2334.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(6,&amp;quot;Linda&amp;quot;,    &amp;quot;Green&amp;quot;,    &amp;quot;19870730&amp;quot;, &amp;quot;19960104&amp;quot;, 4322.78,&amp;quot;New York&amp;quot;,  &amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(7,&amp;quot;David&amp;quot;,    &amp;quot;Larry&amp;quot;,    &amp;quot;19901231&amp;quot;, &amp;quot;19980212&amp;quot;, 7897.78,&amp;quot;New York&amp;quot;,  &amp;quot;Manager&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(8,&amp;quot;James&amp;quot;,    &amp;quot;Cat&amp;quot;,     &amp;quot;19960917&amp;quot;,  &amp;quot;20020415&amp;quot;, 1232.78,&amp;quot;Vancouver&amp;quot;, &amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.02 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select * from Employee;&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
| id   | first_name | last_name | start_date | end_date   | salary  | city      | description |&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
|    1 | Jason      | Martin    | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto   | Programmer  |&lt;br /&gt;
|    2 | Alison     | Mathews   | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester      |&lt;br /&gt;
|    3 | James      | Smith     | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester      |&lt;br /&gt;
|    4 | Celia      | Rice      | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager     |&lt;br /&gt;
|    5 | Robert     | Black     | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester      |&lt;br /&gt;
|    6 | Linda      | Green     | 1987-07-30 | 1996-01-04 | 4322.78 | New York  | Tester      |&lt;br /&gt;
|    7 | David      | Larry     | 1990-12-31 | 1998-02-12 | 7897.78 | New York  | Manager     |&lt;br /&gt;
|    8 | James      | Cat       | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester      |&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
8 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; create procedure myProc ()&lt;br /&gt;
    -&amp;gt;   SELECT id,first_name FROM employee;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; call myProc ();&lt;br /&gt;
+------+------------+&lt;br /&gt;
| id   | first_name |&lt;br /&gt;
+------+------------+&lt;br /&gt;
|    1 | Jason      |&lt;br /&gt;
|    2 | Alison     |&lt;br /&gt;
|    3 | James      |&lt;br /&gt;
|    4 | Celia      |&lt;br /&gt;
|    5 | Robert     |&lt;br /&gt;
|    6 | Linda      |&lt;br /&gt;
|    7 | David      |&lt;br /&gt;
|    8 | James      |&lt;br /&gt;
+------+------------+&lt;br /&gt;
8 rows in set (0.00 sec)&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop procedure myProc;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table Employee;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Creating a Multistatement Stored Procedure==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Change the DELIMITER to something other than a semicolon (;).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;MySQL will allow you to enter a ; without having the client process the input.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Employee(&lt;br /&gt;
    -&amp;gt;     id            int,&lt;br /&gt;
    -&amp;gt;     first_name    VARCHAR(15),&lt;br /&gt;
    -&amp;gt;     last_name     VARCHAR(15),&lt;br /&gt;
    -&amp;gt;     start_date    DATE,&lt;br /&gt;
    -&amp;gt;     end_date      DATE,&lt;br /&gt;
    -&amp;gt;     salary        FLOAT(8,2),&lt;br /&gt;
    -&amp;gt;     city          VARCHAR(10),&lt;br /&gt;
    -&amp;gt;     description   VARCHAR(15)&lt;br /&gt;
    -&amp;gt; );&lt;br /&gt;
Query OK, 0 rows affected (0.03 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;              values (1,&amp;quot;Jason&amp;quot;,    &amp;quot;Martin&amp;quot;,  &amp;quot;19960725&amp;quot;,  &amp;quot;20060725&amp;quot;, 1234.56, &amp;quot;Toronto&amp;quot;,  &amp;quot;Programmer&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(2,&amp;quot;Alison&amp;quot;,   &amp;quot;Mathews&amp;quot;,  &amp;quot;19760321&amp;quot;, &amp;quot;19860221&amp;quot;, 6661.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(3,&amp;quot;James&amp;quot;,    &amp;quot;Smith&amp;quot;,    &amp;quot;19781212&amp;quot;, &amp;quot;19900315&amp;quot;, 6544.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(4,&amp;quot;Celia&amp;quot;,    &amp;quot;Rice&amp;quot;,     &amp;quot;19821024&amp;quot;, &amp;quot;19990421&amp;quot;, 2344.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Manager&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(5,&amp;quot;Robert&amp;quot;,   &amp;quot;Black&amp;quot;,    &amp;quot;19840115&amp;quot;, &amp;quot;19980808&amp;quot;, 2334.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(6,&amp;quot;Linda&amp;quot;,    &amp;quot;Green&amp;quot;,    &amp;quot;19870730&amp;quot;, &amp;quot;19960104&amp;quot;, 4322.78,&amp;quot;New York&amp;quot;,  &amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(7,&amp;quot;David&amp;quot;,    &amp;quot;Larry&amp;quot;,    &amp;quot;19901231&amp;quot;, &amp;quot;19980212&amp;quot;, 7897.78,&amp;quot;New York&amp;quot;,  &amp;quot;Manager&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(8,&amp;quot;James&amp;quot;,    &amp;quot;Cat&amp;quot;,     &amp;quot;19960917&amp;quot;,  &amp;quot;20020415&amp;quot;, 1232.78,&amp;quot;Vancouver&amp;quot;, &amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select * from Employee;&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
| id   | first_name | last_name | start_date | end_date   | salary  | city      | description |&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
|    1 | Jason      | Martin    | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto   | Programmer  |&lt;br /&gt;
|    2 | Alison     | Mathews   | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester      |&lt;br /&gt;
|    3 | James      | Smith     | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester      |&lt;br /&gt;
|    4 | Celia      | Rice      | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager     |&lt;br /&gt;
|    5 | Robert     | Black     | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester      |&lt;br /&gt;
|    6 | Linda      | Green     | 1987-07-30 | 1996-01-04 | 4322.78 | New York  | Tester      |&lt;br /&gt;
|    7 | David      | Larry     | 1990-12-31 | 1998-02-12 | 7897.78 | New York  | Manager     |&lt;br /&gt;
|    8 | James      | Cat       | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester      |&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
8 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; DELIMITER //&lt;br /&gt;
mysql&amp;gt; CREATE PROCEDURE merge_employee (IN old_id INT, IN new_id INT, OUT error VARCHAR(100))&lt;br /&gt;
    -&amp;gt; SQL SECURITY DEFINER&lt;br /&gt;
    -&amp;gt; COMMENT &amp;quot;This is the comment&amp;quot;&lt;br /&gt;
    -&amp;gt; BEGIN&lt;br /&gt;
    -&amp;gt;         DECLARE old_count INT DEFAULT 0;&lt;br /&gt;
    -&amp;gt;         DECLARE new_count INT DEFAULT 0;&lt;br /&gt;
    -&amp;gt;         DECLARE addresses_changed INT DEFAULT 0;&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;         ## check to make sure the old_id and new_id exists&lt;br /&gt;
    -&amp;gt;         SELECT count(*) INTO old_count FROM employee WHERE id = old_id;&lt;br /&gt;
    -&amp;gt;         SELECT count(*) INTO new_count FROM employee WHERE id = new_id;&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;         IF !old_count THEN&lt;br /&gt;
    -&amp;gt;             SET error = &amp;quot;old id does not exist&amp;quot;;&lt;br /&gt;
    -&amp;gt;         ELSEIF !new_count THEN&lt;br /&gt;
    -&amp;gt;             SET error = &amp;quot;new id does not exist&amp;quot;;&lt;br /&gt;
    -&amp;gt;         ELSE&lt;br /&gt;
    -&amp;gt;             UPDATE employee SET id = new_id WHERE id = old_id;&lt;br /&gt;
    -&amp;gt;             SELECT row_count() INTO addresses_changed;&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;             DELETE FROM employee WHERE id = old_id;&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;             SELECT addresses_changed;&lt;br /&gt;
    -&amp;gt;&lt;br /&gt;
    -&amp;gt;         END IF;&lt;br /&gt;
    -&amp;gt; END&lt;br /&gt;
    -&amp;gt; //&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt; DELIMITER ;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; call merge_employee (1,4,@error);&lt;br /&gt;
+-------------------+&lt;br /&gt;
| addresses_changed |&lt;br /&gt;
+-------------------+&lt;br /&gt;
|                 1 |&lt;br /&gt;
+-------------------+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select @error;&lt;br /&gt;
+--------+&lt;br /&gt;
| @error |&lt;br /&gt;
+--------+&lt;br /&gt;
| NULL   |&lt;br /&gt;
+--------+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop procedure merge_employee;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table Employee;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Creating a Single-Statement Procedure==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; create procedure myProc ()&lt;br /&gt;
    -&amp;gt;   SELECT id,first_name FROM employee;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; call myProc ();&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop procedure myProc;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== DROP PROCEDURE and DROP FUNCTION Syntax==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Stored Procedure Permissions==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Specific to procedures, the MySQL permissions scheme has the CREATE ROUTINE, ALTER ROUTINE, and EXECUTE privilege.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The permissions required for working with stored procedures are as follows:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Viewing permissions&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To view stored procedures with SHOW PROCEDURE STATUS, you must have SELECT access to the mysql.proc table.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Or you must have the ALTER ROUTINE privilege for that particular procedure.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Calling permissions&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To call a stored procedure&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You need the ability to connect to the server and have the EXECUTE permission for the procedure.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;EXECUTE permissions can be granted globally in the mysql.user table.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;EXECUTE permissions can be granted at the database level in the mysql.db table&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;EXECUTE permissions can be granted for a specific routine in the mysql.procs_priv table.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Creating and altering permissions&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To govern creating and altering a stored procedure, MySQL uses the CREATE ROUTINE and ALTER ROUTINE privilege.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Permissions for creating or changing procedures can be granted globally in the mysql.user table.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Permissions for creating or changing procedures can be granted at the database level in the mysql.db table.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Permissions for creating or changing procedures can be granted for a specific routine in the mysql.procs_priv table.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Dropping permissions&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To drop a procedure, you must have the ALTER ROUTINE privilege.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Permissions for dropping procedures can be granted globally in the mysql.user table.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Permissions for dropping procedures can be granted at the database level in the mysql.db table.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Permissions for dropping procedures can be granted for a specific routine in the mysql.procs_priv table.&amp;lt;/p&amp;gt;&lt;br /&gt;
11. 5. Procedure&lt;br /&gt;
11. 5. 1. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/MySQL/0201__Procedure-Function/TheCREATEPROCEDUREStatement.htm&amp;quot;&amp;gt;The CREATE PROCEDURE Statement&amp;lt;/a&amp;gt;&lt;br /&gt;
11. 5. 2. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/MySQL/0201__Procedure-Function/Youcansetparametersforastoredprocedure.htm&amp;quot;&amp;gt;You can set parameters for a stored procedure&amp;lt;/a&amp;gt;&lt;br /&gt;
11. 5. 3. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/MySQL/0201__Procedure-Function/UsinganOUTparameter.htm&amp;quot;&amp;gt;Using an OUT parameter.&amp;lt;/a&amp;gt;&lt;br /&gt;
11. 5. 4. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/MySQL/0201__Procedure-Function/Thestoredprocedurecharacteristicsincludeanumberofoptionsforhowthestoredprocedurebehaves.htm&amp;quot;&amp;gt;The stored procedure characteristics include a number of options for how the stored procedure behaves.&amp;lt;/a&amp;gt;&lt;br /&gt;
11. 5. 5. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/MySQL/0201__Procedure-Function/CreatingaSingleStatementProcedure.htm&amp;quot;&amp;gt;Creating a Single-Statement Procedure&amp;lt;/a&amp;gt;&lt;br /&gt;
11. 5. 6. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/MySQL/0201__Procedure-Function/CallingaSingleStatementProcedure.htm&amp;quot;&amp;gt;Calling a Single-Statement Procedure&amp;lt;/a&amp;gt;&lt;br /&gt;
11. 5. 7. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/MySQL/0201__Procedure-Function/CreatingaMultistatementStoredProcedure.htm&amp;quot;&amp;gt;Creating a Multistatement Stored Procedure&amp;lt;/a&amp;gt;&lt;br /&gt;
11. 5. 8. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/MySQL/0201__Procedure-Function/TheALTERstatementletsyouchangethecharacteristicsofastoredprocedure.htm&amp;quot;&amp;gt;The ALTER statement lets you change the characteristics of a stored procedure&amp;lt;/a&amp;gt;&lt;br /&gt;
11. 5. 9. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/MySQL/0201__Procedure-Function/ToremoveastoredproceduresusetheDROPstatement.htm&amp;quot;&amp;gt;To remove a stored procedures, use the DROP statement&amp;lt;/a&amp;gt;&lt;br /&gt;
11. 5. 10. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/MySQL/0201__Procedure-Function/ALTERPROCEDUREandALTERFUNCTIONSyntax.htm&amp;quot;&amp;gt;ALTER PROCEDURE and ALTER FUNCTION Syntax&amp;lt;/a&amp;gt;&lt;br /&gt;
11. 5. 11. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/MySQL/0201__Procedure-Function/DROPPROCEDUREandDROPFUNCTIONSyntax.htm&amp;quot;&amp;gt;DROP PROCEDURE and DROP FUNCTION Syntax&amp;lt;/a&amp;gt;&lt;br /&gt;
11. 5. 12. &lt;br /&gt;
Stored Procedure Permissions&lt;br /&gt;
&lt;br /&gt;
== The ALTER statement lets you change the characteristics of a stored procedure==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;It has the following syntax:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
ALTER PROCEDURE [&amp;lt;database&amp;gt;.]&amp;lt;procedure name&amp;gt; &amp;lt;characteristics&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== The CREATE PROCEDURE Statement==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Here is the syntax:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE [DEFINER = { user | CURRENT_USER }]&lt;br /&gt;
    PROCEDURE sp_name ([proc_parameter[,...]])&lt;br /&gt;
    [characteristic ...] Valid SQL procedure statement&lt;br /&gt;
proc_parameter:&lt;br /&gt;
    [ IN | OUT | INOUT ] param_name type&lt;br /&gt;
characteristic:&lt;br /&gt;
    LANGUAGE SQL&lt;br /&gt;
  | [NOT] DETERMINISTIC&lt;br /&gt;
  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }&lt;br /&gt;
  | SQL SECURITY { DEFINER | INVOKER }&lt;br /&gt;
  | COMMENT &amp;quot;string&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&amp;lt;p&amp;gt;By default, the procedure is associated with the default database.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To associate explicitly with a given database, specify the name as db_name.sp_name.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The name must be followed by parentheses.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the database is not provided, MySQL creates the procedure in the current database or gives a No database selected error.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Procedure names can be up to 64 characters long.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If you must have a procedure with the same name as a MySQL function, putting a space between the name and the parentheses will help MySQL differentiate between the two.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The stored procedure characteristics include a number of options for how the stored procedure behaves.==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The following table lists the available options.&amp;lt;/p&amp;gt;&lt;br /&gt;
Characteristic&lt;br /&gt;
Value&lt;br /&gt;
Description&lt;br /&gt;
LANGUAGE&lt;br /&gt;
SQL&lt;br /&gt;
The language used to write the stored procedure.&lt;br /&gt;
SQL SECURITY&lt;br /&gt;
DEFINER or INVOKER&lt;br /&gt;
The SQL SECURITY tells MySQL which user to use when running the procedure. The default is DEFINER.&lt;br /&gt;
COMMENT&lt;br /&gt;
The COMMENT is a place to enter notes. The comment is displayed in SHOW CREATE PROCEDURE commands.&lt;br /&gt;
&lt;br /&gt;
== To remove a stored procedures, use the DROP statement==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DROP PROCEDURE [database.]&amp;lt;procedure name&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Using an OUT parameter.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE TABLE Employee(&lt;br /&gt;
    -&amp;gt;     id            int,&lt;br /&gt;
    -&amp;gt;     first_name    VARCHAR(15),&lt;br /&gt;
    -&amp;gt;     last_name     VARCHAR(15),&lt;br /&gt;
    -&amp;gt;     start_date    DATE,&lt;br /&gt;
    -&amp;gt;     end_date      DATE,&lt;br /&gt;
    -&amp;gt;     salary        FLOAT(8,2),&lt;br /&gt;
    -&amp;gt;     city          VARCHAR(10),&lt;br /&gt;
    -&amp;gt;     description   VARCHAR(15)&lt;br /&gt;
    -&amp;gt; );&lt;br /&gt;
Query OK, 0 rows affected (0.02 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;              values (1,&amp;quot;Jason&amp;quot;,    &amp;quot;Martin&amp;quot;,  &amp;quot;19960725&amp;quot;,  &amp;quot;20060725&amp;quot;, 1234.56, &amp;quot;Toronto&amp;quot;,  &amp;quot;Programmer&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(2,&amp;quot;Alison&amp;quot;,   &amp;quot;Mathews&amp;quot;,  &amp;quot;19760321&amp;quot;, &amp;quot;19860221&amp;quot;, 6661.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(3,&amp;quot;James&amp;quot;,    &amp;quot;Smith&amp;quot;,    &amp;quot;19781212&amp;quot;, &amp;quot;19900315&amp;quot;, 6544.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(4,&amp;quot;Celia&amp;quot;,    &amp;quot;Rice&amp;quot;,     &amp;quot;19821024&amp;quot;, &amp;quot;19990421&amp;quot;, 2344.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Manager&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(5,&amp;quot;Robert&amp;quot;,   &amp;quot;Black&amp;quot;,    &amp;quot;19840115&amp;quot;, &amp;quot;19980808&amp;quot;, 2334.78, &amp;quot;Vancouver&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(6,&amp;quot;Linda&amp;quot;,    &amp;quot;Green&amp;quot;,    &amp;quot;19870730&amp;quot;, &amp;quot;19960104&amp;quot;, 4322.78,&amp;quot;New York&amp;quot;,  &amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(7,&amp;quot;David&amp;quot;,    &amp;quot;Larry&amp;quot;,    &amp;quot;19901231&amp;quot;, &amp;quot;19980212&amp;quot;, 7897.78,&amp;quot;New York&amp;quot;,  &amp;quot;Manager&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)&lt;br /&gt;
    -&amp;gt;               values(8,&amp;quot;James&amp;quot;,    &amp;quot;Cat&amp;quot;,     &amp;quot;19960917&amp;quot;,  &amp;quot;20020415&amp;quot;, 1232.78,&amp;quot;Vancouver&amp;quot;, &amp;quot;Tester&amp;quot;);&lt;br /&gt;
Query OK, 1 row affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; select * from Employee;&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
| id   | first_name | last_name | start_date | end_date   | salary  | city      | description |&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
|    1 | Jason      | Martin    | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto   | Programmer  |&lt;br /&gt;
|    2 | Alison     | Mathews   | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester      |&lt;br /&gt;
|    3 | James      | Smith     | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester      |&lt;br /&gt;
|    4 | Celia      | Rice      | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager     |&lt;br /&gt;
|    5 | Robert     | Black     | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester      |&lt;br /&gt;
|    6 | Linda      | Green     | 1987-07-30 | 1996-01-04 | 4322.78 | New York  | Tester      |&lt;br /&gt;
|    7 | David      | Larry     | 1990-12-31 | 1998-02-12 | 7897.78 | New York  | Manager     |&lt;br /&gt;
|    8 | James      | Cat       | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester      |&lt;br /&gt;
+------+------------+-----------+------------+------------+---------+-----------+-------------+&lt;br /&gt;
8 rows in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; delimiter //&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CREATE PROCEDURE simpleproc (OUT param1 INT)&lt;br /&gt;
    -&amp;gt; BEGIN&lt;br /&gt;
    -&amp;gt;   SELECT COUNT(*) INTO param1 FROM employee;&lt;br /&gt;
    -&amp;gt; END;&lt;br /&gt;
    -&amp;gt; //&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; delimiter ;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; CALL simpleproc(@a);&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; SELECT @a;&lt;br /&gt;
+------+&lt;br /&gt;
| @a   |&lt;br /&gt;
+------+&lt;br /&gt;
| 8    |&lt;br /&gt;
+------+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop procedure simpleproc;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
mysql&amp;gt; drop table Employee;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
mysql&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== You can set parameters for a stored procedure==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
[IN|OUT|INOUT] &amp;lt;name&amp;gt; &amp;lt;data type&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&amp;lt;p&amp;gt;If you don&amp;quot;t specify IN, OUT, or INOUT for the parameter, it will default to IN.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;An IN parameter is passed into the stored procedure to use internally.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;An OUT parameter is set within the procedure, but accessed by the caller.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;An INOUT parameter is passed into the procedure for internal use, but is also available to the caller after the procedure has completed.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The name and data type of the parameter are used in the stored procedure for referencing and setting values going in and out of the procedure.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The data type can be any valid data type for MySQL.&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>