SQL 学习笔记<六> MySQL存储过程基础
Create MySQL Procedure:
CREATE PROCEDURE procedureName([IN|OUT|INOUT] parameterName dataType)
BEGIN
MySQL语句;
END;
MySQL存储过程参数如果不显示指定'in', 'out', 'inout', 则默认为'in', 习惯上,对于'in'的参数 ,我们都不会显示指定。
NOTES
1. MySQL存储过程明知后面的'()'是必须的,即使没有一个参数,也需要'()'
2. MySQL存储过程参数,不能在参数名称前加'@',如:'@a int', 下面的创建存储过程语法的MySQL中是错误的(在SQL Server是对的)
create procedure pr_add(@a int, b int)
3. MySQL存储过程的参数不能指定默认值。
4. MySQL存储过程不需要再procedure body前面加'as'。而SQL Server存储过程必须加'as'关键字。
5. 如果MySQL存储过程中包含多条MySQL语句,则需要begin end关键字
6. MySQL存储过程中的每条语句的末尾,都要加上分号";",或者自定义分隔符delimiter $;
7. MySQL存储过程中的注释:
/*
这是
多行注释
*/
-- 这是单行MySQL注释,注意:--后面至少要有一个空格
# 这是单行MySQL注释
8. 不能在存储过程中使用'return' 关键字
9. 因为MySQL存储过程中没有默认值,所以在调用MySQL存储过程的时候,不能省略参数,如果不想传值,就用null代替。
路慢慢其休远羲,吾将上下而求所