Sakila 数据库中的存储函数

本文整理了 Sakila 数据库中定义的 3 个存储函数及每个函数的用法。

Sakila 数据库中共定义了 3 个存储函数。

get_customer_balance

get_customer_balance 函数返回指定客户帐户的当前的余额。

参数

p_customer_id
要检查的客户的 ID,来自 customer 表的 customer_id
p_effective_date
客户余额的截止日期。此日期之后的任何租金、付款等均不计算在内。

返回值

此函数返回客户帐户的当前余额。

示例用法

SELECT get_customer_balance(298,NOW());
+---------------------------------+
| get_customer_balance(298,NOW()) |
+---------------------------------+
|                           22.00 |
+---------------------------------+
1 row in set (0.00 sec)

inventory_held_by_customer

inventory_held_by_customer 函数返回正在租用指定库存项目的客户的 customer_id

参数

p_inventory_id
要检查的库存项目的 ID。

返回值

此函数返回当前正在租用该项目的客户的 customer_id。如果该项目未出租,返回 NULL

示例用法

SELECT inventory_held_by_customer(8);
+-------------------------------+
| inventory_held_by_customer(8) |
+-------------------------------+
|                          NULL |
+-------------------------------+
1 row in set (0.00 sec)
SELECT inventory_held_by_customer(9);
+-------------------------------+
| inventory_held_by_customer(9) |
+-------------------------------+
|                           366 |
+-------------------------------+
1 row in set (0.00 sec)

inventory_in_stock

inventory_in_stock 函数返回一个布尔值,指示指定的库存项目是否有库存。

参数

p_inventory_id
要检查的库存项目的 ID。

返回值

此函数返回 TRUEFALSE 以指示指定的项目是否有库存。

示例用法

SELECT inventory_in_stock(9);
+-----------------------+
| inventory_in_stock(9) |
+-----------------------+
|                     0 |
+-----------------------+
1 row in set (0.00 sec)
SELECT inventory_in_stock(8);
+-----------------------+
| inventory_in_stock(8) |
+-----------------------+
|                     1 |
+-----------------------+
1 row in set (0.00 sec)