我目前正在我的架构表上实现一些触发器,以确保导入数据的质量。
更具体地说,一列(让我们称之为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"