存储过程和函数使用注意

1.存储过程和函数的区别

函数只能通过return语句返回单个值或者是表对象,而存储过程不允许执行return语句,但是可以通过out参数返回多个值。函数限制表较多,不能用临时表,只能用表变量,还有一些函数都不可用等等。函数可以嵌入在SQL语句中使用,可以在select语句中作为查询语句的一个部分调用,而存储过程一般是作为一个独立的部分来执行。

2.目前,在MySQL还不能够提供已在的存储过程代码的修改,如果必须要修改存储过程,必须使用DROP语句删除后,在重新编写代码或者创建一个新的存储过程。

3.存储过程包含用户定义的SQL语句集合,还可以使用CALL语句调用存储过程,当然在存储过程中也可以使用call语句调用其他的存储过程,但是不能够使用drop语句删除其他存储过程

4.在定义存储过程参数列表时候,应该注意把参数与数据库表中的字段名称区分开来,否则将出现无法预期的结果;

5.一般情况下,可能会出现存储过程中传入中文参数的情况,例如某个存储过程根据用户的名字查找该用户信息,传入的参数值可能是中文。这时候需要在定义存储过程的时候,在后面加上character set gbk,不然调用存储过程使用中文参数会出错。

猜你喜欢

转载自blog.csdn.net/m0_37248802/article/details/79028682