是否可以创建大于条件的触发器。假设我有一个柱温,每隔15秒就会在该列中存储新值。因此,如果该值变得大于预定义值(例如100度),则生成触发器。有可能在mysql中做到这一点吗?
答案 0 :(得分:4)
MySql没有像Oracle那样实现条件触发器,例如在Oracle中:
CREATE TRIGGER triggername AFTER INSERT ON tablename FOR EACH ROW
WHEN ( condition )
BEGIN
........
END;
只有在condition
满足时触发才会触发。
在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查看此示例的结果。