教程 mariadb tutorial

参数与返回值

1. 参数类型

MariaDB 存储过程支持三种参数类型:

  • IN 参数
    输入参数,调用时传入,过程内部只读,不能修改传入值。
    示例:IN p_id INT

  • OUT 参数
    输出参数,过程执行后用于返回结果,调用时不传入初值,过程内部赋值。
    示例:OUT p_count INT

  • INOUT 参数
    输入输出参数,调用时传入初值,过程内部可以读取和修改,执行结束返回最终值。
    示例:INOUT p_value VARCHAR(50)

2. 返回值

  • 存储过程
    通过 OUT 或 INOUT 参数返回结果,存储过程本身不直接返回值。
    例子:
sql
  CREATE PROCEDURE GetUserCount(OUT total INT)
  BEGIN
      SELECT COUNT(*) INTO total FROM users;
  END;

`

  • 函数 函数必须返回一个值,使用 RETURN 语句返回,通常在查询中使用。 例子:
sql
  CREATE FUNCTION GetUserName(userId INT) RETURNS VARCHAR(100)
  BEGIN
      DECLARE name VARCHAR(100);
      SELECT username INTO name FROM users WHERE id = userId;
      RETURN name;
  END;

3. 调用示例

  • 调用存储过程(带 OUT 参数):
sql
CALL GetUserCount(@total);
SELECT @total;
  • 调用函数:
sql
SELECT GetUserName(1);

掌握参数类型和返回值,有助于设计灵活且高效的数据库存储程序。