programing

trigger mysql에서 select에서 값을 가져와 IF의 조건에 사용하는 방법

megabox 2023. 9. 16. 08:55
반응형

trigger mysql에서 select에서 값을 가져와 IF의 조건에 사용하는 방법

DELIMITER $$
CREATE TRIGGER cek
AFTER INSERT ON lapor_karya
FOR EACH ROW
BEGIN
SET @var = (SELECT COUNT(lapor_karya.ID_Lapor) FROM lapor_karya GROUP BY NEW.ID_Karya);
IF(@var > 10)
THEN
DELETE * FROM karya_pelajar WHERE ID_Karya=NEW.ID_Karya;
END IF;
END $$
DELIMITER ;

오류를

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '* FROM karya_pelajar WHERE ID_Karya=NEW.ID_Karya;
END IF;
END' at line 9

lapor_karya table에서 값을 구하고 조건 IF에 이 값을 사용하고 싶습니다.내 값이 10 이상이면 쿼리 삭제를 실행합니다.근데 안 돼요.

당신이 받은 오류는DELETE진술.떠나셔야 돼요.*당신이 글을 쓸때DELETE진술.

그리고 괄호 없이 시도해보세요.

IF @var > 10 THEN
DELETE FROM karya_pelajar WHERE ID_Karya=NEW.ID_Karya;
END IF;

자세한 내용은 MySQL 설명서를 참조하십시오.

약간의 단순화:

BEGIN
    IF ( SELECT COUNT(*) FROM lapor_karya
            WHERE ??? = NEW.ID_Karya
       ) > 10
    THEN
        DELETE * FROM karya_pelajar WHERE ID_Karya=NEW.ID_Karya;
    END IF;
END $$

즉, 괄호가 쳐진 것은SELECT하나의 값을 반환하는 식은 식을 사용할 수 있는 거의 모든 장소에서 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/64622733/how-to-get-value-from-select-in-trigger-mysql-and-use-it-for-condition-of-if

반응형