我在MySQL中插入过滤器数据之前有一个代码触发器,但它不起作用。这是我的代码的逻辑,如果new.suhu_udara> 30和new.suhu_udara - old.suhu_udara< 10然后设置new.suhu_udara = null
USE `cuaca_maritim`;
DELIMITER $$
DROP TRIGGER IF EXISTS cuaca_maritim.filter$$
USE `cuaca_maritim`$$
CREATE DEFINER=`root`@`localhost` TRIGGER `filter` BEFORE INSERT ON data_cuaca` FOR EACH ROW
if( new.suhu_udara < 21.5 or new.kelembaban_udara < 22 or new.tekanan_udara < 1002.4) then
Set new.suhu_udara = null ;
elseif ( new.suhu_udara > 37.6 or new.kelembaban_udara > 100 or new.tekanan_udara >1018.9 or new.kecepatan_angin > 44) then
Set new.kelembaban_udara = null ;
end if$$
DELIMITER ;
USE `cuaca_maritim`;
DELIMITER $$
DROP TRIGGER IF EXISTS cuaca_maritim.data_cuaca_AFTER_UPDATE$$
USE `cuaca_maritim`$$
CREATE DEFINER = CURRENT_USER TRIGGER `cuaca_maritim`.`data_cuaca_AFTER_UPDATE` AFTER UPDATE ON `data_cuaca` FOR EACH ROW
if ( old.suhu_udara - new.suhu_udara > 10) then
set new.suhu_udara=null ;
end if
$$
DELIMITER ;
你可以帮我用这段代码吗?谢谢
答案 0 :(得分:0)
您没有使用正确的触发功能。在Insert Trigger中什么是OLD.suhu_udara?
OLD。值仅在更新查询中。
请检查触发功能,我认为你应该在这里使用更新。