主题
参数与返回值
1. 参数类型
MariaDB 存储过程支持三种参数类型:
IN 参数
输入参数,调用时传入,过程内部只读,不能修改传入值。
示例:IN p_id INT
OUT 参数
输出参数,过程执行后用于返回结果,调用时不传入初值,过程内部赋值。
示例:OUT p_count INT
INOUT 参数
输入输出参数,调用时传入初值,过程内部可以读取和修改,执行结束返回最终值。
示例:INOUT p_value VARCHAR(50)
2. 返回值
存储过程
通过 OUT 或 INOUT 参数返回结果,存储过程本身不直接返回值。
例子:sqlCREATE 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);
```
---
掌握参数类型和返回值,有助于设计灵活且高效的数据库存储程序。