在多行上触发条件?

时间:2018-01-16 15:50:34

标签: mysql sql triggers

我目前正在我的架构表上实现一些触发器,以确保导入数据的质量。

更具体地说,一列(让我们称之为fraction)应该只包含百分比,即0到1之间的值,但有时可能略高于1。

问题在于,在原始数据文件中,这些值表示为百分比,即0.8表示80%等。

因此,数据库的某些用户可能会以错误的数量级导入数据,即导入70或80而不是0.7或0.8。

为了防止这种情况,我选择了以下条件:如果用户尝试导入的所有行的平均值大于2,我希望软件得出用户的结论导入百分比而不是十进制值,因此通过将所有新值除以100来纠正此错误。

以下BEFORE INSERT触发器检查每一行的值是否为>是否为2,如果是,则将值除以100:

 CREATE DEFINER=`admin`@`localhost` TRIGGER `myschema`.`percentage_trigger` BEFORE INSERT ON `mytable` FOR EACH ROW
BEGIN
     IF NEW.fraction > 2
     THEN 
          SET NEW.fraction = NEW.fraction/100 ;
     END IF;
END

但我的问题是:如何使用听起来像#34的标准;所有新值的平均值是> 2"而不是像&#34这样的标准;这个值是> 2"

0 个答案:

没有答案