我在mysql中存储过程。该过程已创建,但在调用该过程时出现错误:
“错误代码:1175。您正在使用安全更新模式,但您尝试过 更新没有使用KEY列的WHERE的表要禁用安全性 模式,切换首选项中的选项 - > SQL编辑器 - >查询编辑器 并重新连接。“
以下是程序:
------------------------------------------------
drop procedure if exists update_per_det;
delimiter //
create procedure update_per_det(IN name varchar(30))
begin
DECLARE age1 int;
set age1=(select CalAge(name));
update per_det set age=age1 where username=name;
end;//
delimiter ;
我该如何解决这个问题?
答案 0 :(得分:2)
试试这个:
set age1=(select CalAge(name));
SET SQL_SAFE_UPDATES=0;
update per_det set age=age1 where username=name;
答案 1 :(得分:0)
像这样使用 DELIMITER :
DROP PROCEDURE IF EXISTS DealStateChange;
DELIMITER //
CREATE PROCEDURE DealStateChange(statusID tinyint)
UPDATE deals
SET `status` = statusID
WHERE `id` = 1001;
//
DELIMITER ;
/* for execute PROCEDURE */
CALL DealStateChange(11);