DROP {PROCEFURE|FUNCTION} [IF EXISTS] sp_name
例子:
DROP PROCEDURE CountProc;
DROP FUNCTION CountProc;
MySQL存储过程和函数有什么区别?
- 本质上它们都是存储程序
- 函数只能通过return语句返回单个值或者表对象;二存储过程不允许执行return语句,但是可以通过out参数返回多个值
- 函数限制比较多,不能使用临时表,只能使用变量,还有一些函数都不可以用等等;而存储过程的限制相对就比较少
- 函数可以嵌入在SQL语句中使用,可以在SELECT与剧中作为查询语句的一个部分调用;而存储过程一般是作为一个独立的部分来执行
MySQL还不提供对已存在的存储过程代码的修改
存储过程中可以调用其他存储过程吗?
- 存储过程包含用户定义的SQL语句集合,可以使用CALL语句调用存储过程,当然在存储过程中也可以使用CALL语句调用其他存储过程,但是不能使用DROP语句删除其他存储过程
在定义存储过程参数列表时,应注意吧参数名与数据库表中的字段名区分开来,否则将会出现无法预期的效果
存储过程的参数可以使用中文吗?
- 存储过程可以传入中文,这是需要在定义存储过程的时候,在后边加上character set gbk,不然调用存储过程使用中文参数回出错;例如: CAREATE RPROCEDURE userInfo(IN u_name VARCHAR(50) character set gbk,OUT u_age INT)