mysql触发器大于条件

时间:2013-09-24 13:26:07

标签: mysql triggers

是否可以创建大于条件的触发器。假设我有一个柱温,每隔15秒就会在该列中存储新值。因此,如果该值变得大于预定义值(例如100度),则生成触发器。有可能在mysql中做到这一点吗?

1 个答案:

答案 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查看此示例的结果。