gpt4 book ai didi

mysql - 存储过程中的案例语句 - 未知系统变量

转载 作者:行者123 更新时间:2023-11-30 23:08:04 26 4
gpt4 key购买 nike

我正在尝试使用 case 语句根据另一列的值更新一列。我在 MySQL 中名为“rma”的表如下:

ID    |    rma_number    |     serial_number     |    ref_status_id
1 | 9898 | 123456 | 19
2 | 7869 | 098768 | 3

这是我的存储过程:

CREATE DEFINER=`admin`@`localhost` PROCEDURE `delete_update_rma`(in selectedID int, in selectedRMAID int)
begin

declare rmaStatus int(5);

select ref_status_id into rmaStatus
from rma
where id = selectedRMAID;

case rmaStatus
when 19 then
set ref_status_id = 0;

end case;

delete from dropbox where id = selectedID;

end

当我尝试保存以创建过程时,我收到错误 #1193 - Unknown system variable 'ref_status_id'。

任何人都可以帮我确定我的存储过程可能有什么问题吗?

最佳答案

试试这个:

CREATE DEFINER=`admin`@`localhost` PROCEDURE `delete_update_rma`(IN selectedID INT, IN selectedRMAID INT)
BEGIN

UPDATE rma
SET ref_status_id =
CASE ref_status_id
WHEN 19 THEN 0
WHEN 3 THEN 2
ELSE ref_status_id
END
WHERE id = selectedRMAID;

DELETE FROM dropbox WHERE id = selectedID;

END

检查 SQL FIDDLE DEMO

输出

| ID | RMA_NUMBER | SERIAL_NUMBER | REF_STATUS_ID |
|----|------------|---------------|---------------|
| 1 | 12345 | 67898 | 0 |
| 2 | 45645 | 89056 | 2 |

关于mysql - 存储过程中的案例语句 - 未知系统变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20986039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com