mysql> CREATE PROCEDURE num_from_employee
(IN emp_id INT, OUT count_num INT )
-> READS SQL DATA
-> BEGIN
-> SELECT COUNT(*) INTO count_num
-> FROM employee
-> WHERE d_id=emp_id ;
-> END &&
Query OK, 0 rows affected (0.09 sec)
mysql> DELIMITER ;
代码执行完毕后,没有报出任何出错信息就表示存储函数已经创建成功。以后就可以调用这个存储过程,数据库中会执行存储过程中的SQL语句。
说明:MySQL中默认的语句结束符为分号(;)。存储过程中的SQL语句需要分号来 结束。为了避免冲突,首先用"DELIMITER &&"将MySQL的结束符设置为&&。最后再用"DELIMITER ;"来将结束符恢复成分号。这与创建触发器时是一样的。
CREATE PROCEDURE num_from_employee (IN bid INT, OUT count_num INT )
BEGIN
SELECT COUNT(*) INTO count_num
FROM book
WHERE book_id= bid;
END
DROP PROCEDURE num_from_employee
call num_from_employee(1000,@count_num);
select @count_num
CREATE PROCEDURE num_from_book (IN bid INT, OUT count_num INT )
BEGIN
DECLARE n INT DEFAULT 0;
SELECT COUNT(*) INTO n
FROM book
WHERE book_id= bid;
if n=1
then
SET count_num=2;
END IF;
END
call num_from_book(1000,@count_num);
select @count_num