반응형
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
반응형
'programing' 카테고리의 다른 글
mysql DATETIME 열을 epoch seconds로 변환 (0) | 2023.09.21 |
---|---|
쿼리 작성기가 타임스탬프를 삽입하지 않음 (0) | 2023.09.16 |
블록 순환 분포를 얻는 방법은? (0) | 2023.09.16 |
WordPress 퍼말링크 시스템은 어떻게 작동합니까? (0) | 2023.09.16 |
오류 1265.txt 파일에서 데이터를 로드하려고 할 때 열에 대한 데이터가 잘림 (0) | 2023.09.16 |