在MySQL中实现字段变化触发执行SQL,可通过触发器(Trigger)实现。以下是具体实现方式及注意事项:

  • 触发器核心语法结构

    CREATE TRIGGER trigger_name 
    {BEFORE | AFTER} UPDATE ON table_name 
    FOR EACH ROW 
    BEGIN
      -- 触发逻辑
    END;

    BEFORE/AFTER‌:指定在更新操作前/后触发‌。

    UPDATE‌:限定仅在字段更新时触发‌。

  • 通过NEW和OLD关键字对比更新前后的值,判断字段是否发生变化:
CREATE TRIGGER log_age_change 
AFTER UPDATE ON students 
FOR EACH ROW 
BEGIN
    IF NEW.age <> OLD.age THEN
        INSERT INTO change_log (student_id, old_age, new_age) 
        VALUES (OLD.id, OLD.age, NEW.age);
    END IF;
END;

NEW.column‌:更新后的字段值‌。

OLD.column‌:更新前的字段值‌。

IF条件判断‌:仅当字段值变化时才执行后续SQL‌。

  • 删除触发器

    DROP TRIGGER log_age_change 

断树绳
1 声望0 粉丝