codememo

다음 MariaDB 저장 프로시저는 WHERE 기준을 충족할 뿐만 아니라 테이블의 모든 행을 업데이트하기 때문에 제대로 작동하지 않습니다.

tipmemo 2023. 8. 31. 23:55
반응형

다음 MariaDB 저장 프로시저는 WHERE 기준을 충족할 뿐만 아니라 테이블의 모든 행을 업데이트하기 때문에 제대로 작동하지 않습니다.

다음 MariaDB 저장 프로시저는 WHERE 기준을 충족할 뿐만 아니라 테이블의 모든 행을 업데이트하기 때문에 제대로 작동하지 않습니다.내 코드에 무슨 문제가 있습니까?

CREATE DEFINER=`root`@`localhost` PROCEDURE `spupdatedepartments`(
    IN `DeptID` INT,
    IN `ClinicID` INT,
    IN `DeptName` VARCHAR(250),
    IN `Description` VARCHAR(250),
    IN `Remark` VARCHAR(250)
)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
    UPDATE tbdepartments SET ClinicID=ClinicID,DeptName=DeptName,Description=Description,Remark=Remark  WHERE DeptID=DeptID; 
END
SET ClinicID=ClinicID

즉, 열을 해당 열의 현재 값으로 설정하는 것입니다.

WHERE  DeptID=DeptID

열은 항상 자신과 동일합니다(단, 그렇지 않은 경우).NULL).

표에 나와 있는 것과 비교하여 무엇이 들어오는지 명확히 할 것을 제안합니다.인수에 주요 밑줄을 긋는 방법은 다음과 같습니다.

IN `_DeptID` INT,
IN `_ClinicID` INT,
...
SET ClinicID = _ClinicID
...
WHERE  DeptID = _DeptID

언급URL : https://stackoverflow.com/questions/56815501/the-following-mariadb-stored-procedure-doesnt-work-properly-as-it-updates-all-t

반응형