Mysql Trigger中的多个IF不起作用

时间:2014-09-15 12:34:12

标签: php mysql triggers

我正在尝试将表的更改记录到另一个表中。但我的触发器无效。需要帮助:

// Mysql code below
create trigger upd_stu_info
before update
on kisalg_student
for each row
    begin
        IF OLD.stu_name != NEW.stu_name
        THEN
        INSERT INTO `kisalg_logactions`
        (adm_no, change_type,change_head, old_value,new_value,user,date_time,session)
        VALUES 
        (NEW.adm_no, 'stu_info','Change In Student Name ', OLD.stu_name, NEW.stu_name, NEW.user, NEW.date_time, NEW.session);
        END IF;

        IF OLD.fat_name != NEW.fat_name
        THEN
        INSERT INTO `kisalg_logactions`
        (adm_no, change_type, change_head, old_value, new_value, user, date_time, session)
        VALUES 
        (NEW.adm_no, 'stu_info','Change In Father Name ', OLD.fat_name, NEW.fat_name, NEW.user, NEW.date_time, NEW.session);
        END IF;  
    end;

1 个答案:

答案 0 :(得分:1)

我刚尝试了mysql上的触发器并使用以下内容我没有得到任何语法错误

delimiter //
create trigger upd_stu_info
before update
on kisalg_student
for each row
    begin
        IF OLD.stu_name != NEW.stu_name
         THEN
            INSERT INTO `kisalg_logactions`
            (adm_no, change_type,change_head, old_value,new_value,user,date_time,session)
            VALUES 
            (NEW.adm_no, 'stu_info','Change In Student Name ', OLD.stu_name, NEW.stu_name, NEW.user, NEW.date_time, NEW.session);
        END IF;

        IF OLD.fat_name != NEW.fat_name
          THEN
            INSERT INTO `kisalg_logactions`
            (adm_no, change_type, change_head, old_value, new_value, `user`, date_time, session)
            VALUES 
            (NEW.adm_no, 'stu_info','Change In Father Name ', OLD.fat_name, NEW.fat_name, NEW.`user`, NEW.date_time, NEW.session);
        END IF;  
    end; //