我有一个存储过程来将列(LiveStatus
)更新为' N'在插入新的数据行并将其列(LiveStatus
)设置为' Y'之前如果新值的DeviceID
已经存在且其LiveSTatus为' Y'。
它会插入新值,但上一行livestatus
的{{1}}仍为“{'”
存储过程:
DeviceID
答案 0 :(得分:0)
这是你的代码:
declare Sno int;
set Sno=(SELECT MAX(Sno) FROM posassignment WHERE DeviceID=DeviceID);
update posassignment set LiveStatus ='N' where Sno=Sno;
update
相当于:
update posassignment set LiveStatus = 'N' where Sno is not null;
也就是说,sno
引用都不是参数。您对DeviceID
:
CREATE DEFINER=`testmysql`@`%` PROCEDURE `PDADeviceAssign`(
IN in_DeviceID varchar(50),
IN in_EmpID varchar(50),
. . .
)
BEGIN
declare v_Sno int;
set v_Sno = (SELECT MAX(Sno)
FROM posassignment
WHERE DeviceID = in_DeviceID
);
update posassignment
set LiveStatus = 'N'
where Sno = v_Sno;