是否可以为大于条件创建触发器。假设我有一个列温度,并且每 15 秒后新值存储在该列中。因此,如果该值变得大于预定义值(例如 100 度),则会生成触发器。可以在mysql中做到吗?
问问题
3906 次
1 回答
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 查看此示例的结果。
于 2013-09-24T17:26:15.443 回答