1create or replace table log_tbl(id int auto_increment primary key, log text) engine=myisam; 2 3create or replace procedure log(s text) 4 insert into log_tbl(log) values(s); 5 6if (!$trig_table) 7{ 8 die "No $trig_table specified"; 9} 10 11if (!$trig_cols) 12{ 13 let $trig_cols= s, e; 14} 15 16let $old_trig_args= `select REGEXP_REPLACE('$trig_cols', '([[:word:]]+)', 17 'old.\\\\\\\\1')`; 18let $old_trig_args= `select REPLACE('$old_trig_args', ',', ', ", ", ')`; 19let $new_trig_args= `select REGEXP_REPLACE('$trig_cols', '([[:word:]]+)', 20 'new.\\\\\\\\1')`; 21let $new_trig_args= `select REPLACE('$new_trig_args', ',', ', ", ", ')`; 22 23eval create trigger tr1upd_$trig_table before update on $trig_table 24 for each row call log(CONCAT('>UPD: ', $old_trig_args, ' -> ', $new_trig_args)); 25eval create trigger tr2upd_$trig_table after update on $trig_table 26 for each row call log(CONCAT('<UPD: ', $old_trig_args, ' -> ', $new_trig_args)); 27eval create trigger tr1del_$trig_table before delete on $trig_table 28 for each row call log(CONCAT('>DEL: ', $old_trig_args)); 29eval create trigger tr2del_$trig_table after delete on $trig_table 30 for each row call log(CONCAT('<DEL: ', $old_trig_args)); 31eval create trigger tr1ins_$trig_table before insert on $trig_table 32 for each row call log(CONCAT('>INS: ', $new_trig_args)); 33eval create trigger tr2ins_$trig_table after insert on $trig_table 34 for each row call log(CONCAT('<INS: ', $new_trig_args)); 35 36 37let trig_cols= 0; 38let trig_table= 0; 39