这是MySQL 的过程:
CREATE DEFINER = `root`@`%` PROCEDURE `NewProc`(IN comp_id VARCHAR(40))
BEGIN
...
UPDATE tbl_complaint SET DIDM_Docket_No = '2013-12-12' WHERE Comp_ID = comp_id;
END;
Run Code Online (Sandbox Code Playgroud)
这是我调用程序时的样子:
call gen_docketno('{74651651-9D76-C973-175A-97B9B78608A5}')
Run Code Online (Sandbox Code Playgroud)
是不是因为参数值中的括号和破折号导致程序无法正确更新?因为当我在 sql 查询中运行它时,它可以工作,但在存储过程中却不能。
UPDATE tbl_complaint SET DIDM_Docket_No = '2013-12-12' WHERE Comp_ID = '{BF16E293-6CD2-8BC3-91B1-CF5AC70A090B}';
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何解决这个问题吗?
重命名您的参数comp_id。它与您的列名发生冲突,导致它更新所有记录,
CREATE PROCEDURE `NewProc`(IN _comp_id VARCHAR(40))
BEGIN
...
UPDATE tbl_complaint
SET DIDM_Docket_No = '2013-12-12'
WHERE Comp_ID = _comp_id;
END;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1966 次 |
| 最近记录: |