mariadb mysql更新中的触发器

carvr3hs  于 2022-11-08  发布在  Mysql
关注(0)|答案(1)|浏览(148)

我有这些表,我想编写一个触发器,当我在“tache"中执行插入语句时,给定datedif(datestart,dateend) > 30,我想更新表“* employed *”并设置salaire = salaire*0.5

  • 表1:雇员(平均工资,薪金)
  • 表2:tache(mle,日期开始,日期结束)

以下是我的非工作尝试:

drop trigger if exists set_5_slr;

delimiter $$

create trigger set_5_slr 
before insert on réalise 
FOR EACH ROW
BEGIN
    if datediff(new.dateDébut,new.datefin)>30 
    then UPDATE TABLE employé set salaire=salaire+(salaire*0.5)  where mle=new.mle;
    end if;
end ;

delimiter ;

你能帮我解决这个问题吗?

nbnkbykc

nbnkbykc1#

这是解决方案

delimiter $$
create TRIGGER réalise_AFTER_INSERT AFTER INSERT ON réalise FOR EACH ROW
BEGIN
    if abs(datediff(new.dateDébut,new.datefin))>30 then 
            UPDATE employé set salaire=salaire*1.5 where mle=new.mle;
    end if;
END $$
delimiter ;

相关问题