mysql 触发器示例

一些操作会触发的函数。

如更新(增删改)rule_hzq_all(或 b_rule_table)表的时候,我们希望对更新操作做记录。

这种情况使用触发器,用户对 rule_hzq_all 有更新操作时,触发记录函数。

CREATE table update_history
(
    bussiness varchar(12),
    operation varchar(12),
    rule_id	varchar(64),
    time timestamp
)
DELIMITER //
CREATE TRIGGER t_afterupdate_on_rulecheckall AFTER update ON rule_hzq_all FOR EACH ROW
BEGIN
    DECLARE changed_col varchar(512);
    set changed_col = '';
    if old.rule_id <> new.rule_id then
        set changed_col = CONCAT(changed_col, 'rule_id&');
    end if;    
    if changed_col <> '' then 
        set changed_col = left(changed_col, length(changed_col) - 1);
    end if;        
    
    insert into update_history values ('check', 'update', old.rule_id,  current_timestamp());
END;
CREATE TRIGGER t_afterinsert_on_rulehzqall AFTER insert ON rule_hzq_all FOR EACH ROW
BEGIN
    insert into update_history values ('check', 'insert', new.rule_id,current_timestamp());
END;
CREATE TRIGGER t_afterdelete_on_rulehzqall AFTER delete ON rule_hzq_all FOR EACH ROW
BEGIN
    insert into update_history values ('check', 'delete', old.rule_id,current_timestamp());
END;


trigger.sql

猜你喜欢

转载自blog.csdn.net/hzq20081121107/article/details/52059187
今日推荐