mysql存储过程更新所有行,而不是1行
以下是MySQL的过程:mysql存储过程更新所有行,而不是1行,mysql,sql,stored-procedures,Mysql,Sql,Stored Procedures,以下是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; call gen_docketno('{74651651-9D76-C973-175A-9
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;
call gen_docketno('{74651651-9D76-C973-175A-97B9B78608A5}')
这是我调用过程时的外观:
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;
call gen_docketno('{74651651-9D76-C973-175A-97B9B78608A5}')
是否由于参数值中的括号和破折号导致程序无法正确更新?因为当我在sql查询中运行它时,它可以工作,但在存储过程中则不行
UPDATE tbl_complaint SET DIDM_Docket_No = '2013-12-12' WHERE Comp_ID = '{BF16E293-6CD2-8BC3-91B1-CF5AC70A090B}';
谁能告诉我如何解决这个问题吗?重命名您的参数
comp\u 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;
重命名参数
comp\u 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;
其中Comp\u ID=Comp\u ID
=全部更新!欢迎来到堆栈溢出<代码>:D其中Comp\u ID=Comp\u ID
=全部更新!欢迎来到堆栈溢出<代码>:D