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代替。

路慢慢其休远羲,吾将上下而求所
原文地址:https://www.cnblogs.com/garinzhang/p/2500530.html