技术开发 频道

MySQL数据库新特性之存储过程入门教程

  3 调用存储过程的方法

  调用存储过程的方法很简单,只需要使用call命令即可,后面跟要调用存储过程的名称及输入的变量列表,比如:

CALL stored_procedure_name (param1, param2, ....)

CALL procedure1(
10 , 'string parameter' , @parameter_var);

  4 修改和删除存储过程

  可以用ALTER的语法去修改存储过程的主要特征和参数,要修改其存储过程的主体部分的话,必须要先删除然后再重建。比如下面修改存储过程num_from_employee的定义。将读写权限改为MODIFIES SQL DATA,并指明调用者可以执行。代码执行如下:

ALTER PROCEDURE num_from_employee
MODIFIES SQL DATA SQL SECURITY INVOKER ;

  而删除存储过程的语法为使用DROP关键词即可。如下

DROP PROCEDURE IF EXISTS p2;

  5)存储过程的参数

  下面来学习下存储过程中的参数,先看下存储过程中的参数形式,如下:

  CREATE PROCEDURE proc1 () 这个存储过程中是空的参数列表

  CREATE PROCEDURE proc1 (IN varname DATA-TYPE) 这个存储过程中有一个输出参数,名称为varname,后面是跟数据类型DATA-TYPE,IN参数是默认的,因此可以省略不写

  CREATE PROCEDURE proc1 (OUT varname DATA-TYPE) 这个存储过程中varname为输出参数

  CREATE PROCEDURE proc1 (INOUT varname DATA-TYPE) 这个存储过程中,varname既是输入参数也是输出参数

  下面具体看个例子,首先是IN输入参数的例子,如下:

  DELIMITER //
  
CREATE PROCEDURE `proc_IN` (IN var1 INT)
  
BEGIN
  
SELECT var1 + 2 AS result;
  
END//

  输出OUT参数例子如下:

  DELIMITER //
  
CREATE PROCEDURE `proc_OUT` (OUT var1 VARCHAR(100))
  
BEGIN
  
SET var1 = 'This is a test';
  
END //

  IN-OUT的例子:

  DELIMITER //
  
CREATE PROCEDURE `proc_INOUT` (OUT var1 INT)
  
BEGIN
  
SET var1 = var1 * 2;
  
END //
1
相关文章