仓库(编号,保管员编号,面积) 保管员(编号,姓名,年龄,电话、月薪) 商品(编号,品名,仓库编号、数量,单价) 根据上面基本表的信息定义一个存储过程,完成下面功能: 入口参数:仓库编号 1 显示仓库信息 2 如果没有商品存放,删除该记录 3 如果面积低于100平米,设为100。实验进行测试部分代码
时间: 2024-03-20 19:43:14 浏览: 16
以下是基本表的定义和存储过程的实现代码:
```sql
-- 仓库表
CREATE TABLE 仓库 (
编号 INT PRIMARY KEY,
保管员编号 INT,
面积 INT
);
-- 保管员表
CREATE TABLE 保管员 (
编号 INT PRIMARY KEY,
姓名 VARCHAR(20),
年龄 INT,
电话 VARCHAR(20),
月薪 INT
);
-- 商品表
CREATE TABLE 商品 (
编号 INT PRIMARY KEY,
品名 VARCHAR(20),
仓库编号 INT,
数量 INT,
单价 INT
);
-- 定义存储过程
CREATE PROCEDURE 处理仓库信息(IN 仓库编号 INT)
BEGIN
-- 显示仓库信息
SELECT * FROM 仓库 WHERE 编号 = 仓库编号;
-- 查询是否有商品存放
DECLARE num_goods INT;
SELECT COUNT(*) INTO num_goods FROM 商品 WHERE 仓库编号 = 仓库编号;
-- 如果没有商品存放,删除该记录
IF num_goods = 0 THEN
DELETE FROM 仓库 WHERE 编号 = 仓库编号;
END IF;
-- 如果面积低于100平米,设为100
UPDATE 仓库 SET 面积 = 100 WHERE 编号 = 仓库编号 AND 面积 < 100;
END;
```
在调用存储过程时,只需要传入仓库编号即可:
```sql
CALL 处理仓库信息(1);
```