当前位置: 移动技术网 > IT编程>数据库>Mysql > 【MYSQL笔记3】MYSQL过程式数据库对象之存储过程的调用、删除和修改

【MYSQL笔记3】MYSQL过程式数据库对象之存储过程的调用、删除和修改

2019年01月09日  | 移动技术网IT编程  | 我要评论

mysql从5.0版本开始支持存储过程、存储函数、触发器和事件功能的实现。

我们以一本书中的例题为例:创建xscj数据库的存储过程,判断两个输入的参数哪个更大。并调用该存储过程。

(1)调用

首先,创建存储过程(procedure),名为xscj.compar

delimiter $$
create procedure xscj.compar
                (in k1 integer, in k2 integer, out k3 char(6) )
begin 
    if k1>k2 then
        set k3='大于';
    elseif k1=k2 then
        set k3='等于';
    else 
        set k3='小于';
    end if;
end$$
delimiter ;

执行结果如下:

在上边的语句中:

create 语句是创建存储过程,下行表示的是存储过程参数,in 表示输入参数, out 表示输出参数,inout 表示输入/输出参数,@表示用户变量;

if 语句是流程控制语句,当条件为真,执行对应的sql语句;

在代码的前一部分,因为在mysql中,服务器处理语句的时候是以分号为结束标志的,但是在创建存储过程的时候,存储过程可能包含多个sql语句,每个sql语句都是以分号为结尾的,这时服务器处理程序的时候遇到第一个分号就会认为程序结束,这肯定是不可行的。因此在使用"delimiter+结束符"的命令将mysql语句的结束标志修改为其他符号,最后在使用'opdelimiter ;'恢复以分号为结束标志。

存储过程创建完后,可以在程序、触发器或者其他存储过程中被调用,但是都必须使用call语句。

(2)删除

仍然使用drop语句

drop procedure if exists 过程名

(3)修改

可以使用

alter procedure 存储过程 [特征...]

来修改存储过程的某些特征;但是如果要修改存储过程的内容,可以使用先删除再重新定义存储过程的方法。

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网