MySQL 5.0 版本开始支持存储过程。存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。
一、sql语法
DECLARE variable_name datatype(size) DEFAULT default_value;
解释:variable_name 是定义变量的名称(可以定义多个变量逗号分隔),datatype(size) 是变量的类型和长度,default_value定义的变量初始值,如果不需要初始值则 DEFAULT default_value 这部分可以省略。
二、变量定义实例
DECLARE a,a1,a2 int unsigned default 4000000;
DECLARE b number(8,2) DEFAULT 9.95;
DECLARE c date DEFAULT '1999-12-31';
DECLARE d datetime DEFAULT '1999-12-31 23:59:59';
DECLARE e varchar(255) DEFAULT 'This will not be padded';
三、储存过程赋值实例
1、通过set赋值
DROP PROCEDURE matches; -- 不存在这个储存过程时不用运行
CREATE PROCEDURE matches(IN c_a INTEGER)
BEGIN
DECLARE a,b int DEFAULT 0;
set a = 99;
SELECT a,b,c_a;
END;
CALL matches(1);
2、通过SELECT INTO赋值
DROP PROCEDURE matches; -- 不存在这个储存过程时不用运行
CREATE PROCEDURE matches(IN c_a INTEGER)
BEGIN
DECLARE a,b int DEFAULT 0;
SELECT MAX(id) INTO a from test.login ;
SELECT a,b,c_a;
END;
CALL matches(1);