2013-09-24 5 views
0

더 큰 조건을 위해 트리거를 생성 할 수 있습니까? 열 온도가 있고 15 초마다 새로운 값이 해당 열에 저장된다고 가정합니다. 따라서 값이 사전 정의 된 값 (예 : 100도)보다 커지면 트리거가 생성됩니다. 그것은 mysql에서 그것을 할 수 있습니까?더 큰 조건을위한 mysql 트리거

CREATE TRIGGER triggername AFTER INSERT ON tablename FOR EACH ROW 
WHEN (condition) 
BEGIN 
    ........ 
END; 

트리거가 condition이 충족 경우에만 해고 : 오라클은 오라클에서 예를 들어,하는 것처럼

답변

4

MySQL은 조건부 트리거를 구현하지 않습니다.

MySql에서 트리거는 매번 실행됩니다.
그러나, 예를 들어, 트리거 내에서 if 문 조건을 사용하여 몇 가지 조건이 충족 경우에만 몇 가지 작업을 수행하는 것은 여전히 ​​가능하다 :

Create table temperature(
    id int primary key auto_increment, 
    temperature decimal(5, 1) 
); 

Create table temp_above_100(
    id int primary key auto_increment, 
    temperature decimal(5, 1) 
); 

CREATE TRIGGER triggername 
AFTER INSERT ON temperature FOR EACH ROW 
BEGIN 
    IF new.temperature >= 100 THEN 
    INSERT INTO temp_above_100(temperature) 
    VALUES (new.temperature); 
    END IF; 
END;/ 

INSERT INTO temperature(temperature) 
VALUES (10), (20), (100), (120); 

클릭이 링크 : http://www.sqlfiddle.com/#!2/6a930/1이 예제의 결과를 볼 수 있습니다.

+0

고맙습니다. – prattom