MariaDB 中如何创建存储过程?

推荐答案

在 MariaDB 中,创建存储过程的语法如下:

-- -------------------- ---- -------
--------- --

------ --------- ----------------- ------ --------- --- ------ ---------
-----
    -- ---------
    ------ ----------- ---- ------ ---- ---------- ----- ----------
--- --

--------- -

示例

假设我们有一个名为 employees 的表,我们想创建一个存储过程来获取某个员工的薪水:

本题详细解读

1. DELIMITER 语句

在 MariaDB 中,默认的语句结束符是分号 (;)。为了在存储过程中使用分号而不导致语句提前结束,我们需要使用 DELIMITER 语句来临时更改结束符。通常,我们会将结束符改为 // 或其他符号,然后在存储过程定义结束后再改回分号。

2. CREATE PROCEDURE 语句

CREATE PROCEDURE 用于定义一个新的存储过程。存储过程可以包含输入参数 (IN)、输出参数 (OUT) 或输入输出参数 (INOUT)。

  • IN 参数:用于向存储过程传递值。
  • OUT 参数:用于从存储过程返回值。
  • INOUT 参数:既可以传递值,也可以返回值。

3. BEGIN ... END

BEGIN ... END 块用于包含存储过程的主体逻辑。在这个块中,你可以编写 SQL 语句、控制流语句(如 IFCASELOOP 等)以及其他存储过程调用。

4. 示例解析

在示例中,我们创建了一个名为 GetEmployeeSalary 的存储过程,它接受一个 emp_id 作为输入参数,并返回该员工的薪水。SELECT ... INTO 语句用于将查询结果赋值给 OUT 参数 salary

5. 调用存储过程

创建存储过程后,可以使用 CALL 语句来调用它:

在这个例子中,1 是传递给 emp_id 的参数,@salary 是一个用户定义的变量,用于存储返回的薪水值。

纠错
反馈