mysql5创建一个存储过程个表都有状态这个词,当状态为“通过时”,根据领用、送修、维修、报废表将另一个表的状态更改为“闲置”、“使用”、“维修”、“报废”当同时都通过时按照顺序为“报废、维修、送修、领用”赋值
时间: 2023-08-04 15:08:21 浏览: 38
根据您的需求,可以创建一个存储过程来实现您的逻辑。以下是一个示例存储过程:
```
CREATE PROCEDURE update_status (IN status VARCHAR(20), IN table_name VARCHAR(20))
BEGIN
DECLARE flag INT DEFAULT 0;
DECLARE new_status VARCHAR(20) DEFAULT "";
IF (status = "通过时") THEN
IF (table_name = "领用表") THEN
SET new_status = "闲置";
SET flag = 1;
ELSEIF (table_name = "送修表") THEN
SET new_status = "使用";
IF (flag < 3) THEN
SET flag = 3;
END IF;
ELSEIF (table_name = "维修表") THEN
SET new_status = "维修";
IF (flag < 2) THEN
SET flag = 2;
END IF;
ELSEIF (table_name = "报废表") THEN
SET new_status = "报废";
IF (flag < 1) THEN
SET flag = 1;
END IF;
END IF;
IF (flag = 4) THEN
UPDATE 另一个表 SET 状态 = "领用" WHERE ...;
ELSEIF (flag = 3) THEN
UPDATE 另一个表 SET 状态 = "送修" WHERE ...;
ELSEIF (flag = 2) THEN
UPDATE 另一个表 SET 状态 = "维修" WHERE ...;
ELSEIF (flag = 1) THEN
UPDATE 另一个表 SET 状态 = "报废" WHERE ...;
ELSE
UPDATE 另一个表 SET 状态 = new_status WHERE ...;
END IF;
END IF;
END;
```
该存储过程会根据传入的状态和表名参数更新另一个表的状态值。如果同时有多个表状态为“通过时”,则根据优先级顺序为“报废、维修、送修、领用”进行赋值。如果没有任何一个表状态为优先级状态,则根据当前表名对应的状态值进行赋值。具体的 WHERE 条件需要根据具体的业务逻辑进行设置。
在实际应用中,可以按照以下方式调用该存储过程:
```
CALL update_status("通过时", "领用表");
```
该示例调用会更新另一个表的状态值为“闲置”,具体的 WHERE 条件需要根据具体的业务逻辑进行设置。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)