SELECT * FROM `tsys_user`SELECT * FROM ums_customer# 查看字段desc ums_customer# 触发器SHOW TRIGGERSCREATE trigger trigger_name BEFORE|AFTER trigger_EVENT ON TABLE_NAME FOR EACH ROW trigger_STMT #参数trigger_name表示要创建的触发器名;#参数BEFORE和AFTER指定了触发器执行的时间,前者在触发器事件之前执行触发器语句,后者在触发器事件之后执行触发器语句;#参数trigger_EVENT表示触发事件,即触发器执行条件(触发事件),包含DELETE、INSERT和UPDATE语句;#参数TABLE_NAME表示触发事件的操作表名;#参数FOR EACH ROW表示任何一条记录上的操作满足触发事件都会触发该触发器;#参数trigger_STMT(sql语句)表示激活触发器后被执行的语句。执行语句中如果要引用更新记录中的字段,对于INSERT语句,只有NEW是合法的,表示当前已插入的记录;对于DELETE语句,只有OLD才合法,表示当前删除的记录;而UPDATE语句可以和NEW(更新后)以及OLD(更新前)同时使用。# 在创建触发器主体时,还可以使用OLD和NEW 来获取 SQL 执行INSERT,UPDATE和DELETE 操作前后的写入数据。# DELIMITER //:MySQL 默认分隔符是; 但在触发器中,我们使用 // 表示触发器的开始与结束 // 可以替换为 $ 。desc ums_customer;# 触发器 1DROP TRIGGERIF EXISTS trigger_user_customer_insert;DELIMITER //CREATE TRIGGER trigger_user_customer_insert AFTER INSERT ON tsys_user FOR EACH ROWINSERT INTO ums_customer ( #id,user_name, `name`, sex, job, matrimony, birthday, forbidden )VALUES ( #new.user_id, new.real_name, new.real_name, new.sex, '企事业单位员工', new.marriage_state, new.birthday, 0 )// DELIMITER;# 带定义字段 insert 触发器DROP TRIGGERIF EXISTS trigger_user_customer_insert;DELIMITER //CREATE TRIGGER trigger_user_customer_insert AFTER INSERT ON tsys_user FOR EACH ROWBEGIN DECLARE user_id VARCHAR ( 50 ); DECLARE user_name VARCHAR ( 50 ); DECLARE `name` VARCHAR ( 50 ); DECLARE sex INT; DECLARE matrimony INT; DECLARE birthday datetime; SET user_id = new.user_id; SET user_name = new.real_name; SET `name` = new.real_name; SET sex = new.sex; SET matrimony = new.marriage_state; SET birthday = new.birthday;INSERT INTO ums_customer ( user_name, `name`, sex, job, matrimony, birthday, forbidden, user_id )VALUES ( user_name, `name`, sex, '企事业单位员工', matrimony, birthday, 0 , user_id ); END // DELIMITER;# 更新 (正式)DROP TRIGGERIF EXISTS trigger_user_customer_update;DELIMITER //CREATE TRIGGER trigger_user_customer_update AFTER UPDATE ON tsys_user FOR EACH ROWBEGIN DECLARE user_name VARCHAR ( 50 ); DECLARE `name` VARCHAR ( 50 ); DECLARE sex INT; DECLARE matrimony INT; DECLARE birthday datetime; SET user_name = new.real_name; SET `name` = new.real_name; SET sex = new.sex; SET matrimony = new.marriage_state; SET birthday = new.birthday; UPDATE ums_customer SET user_name = user_name, `name` = user_name, sex = sex, matrimony = matrimony, birthday = birthday WHERE user_id = new.user_id;END // DELIMITER;# 更新DROP TRIGGER IF EXISTS trigger_user_customer_update;DELIMITER //CREATE TRIGGER trigger_user_customer_update AFTER UPDATE ON tsys_user FOR EACH ROWUPDATE ums_customer SET user_name = NEW.real_name,`name` = NEW.real_name,sex = NEW.sex,matrimony = NEW.marriage_state,birthday = NEW.birthday WHERE id = new.user_id // DELIMITER;# 删除 (正式使用)DROP TRIGGER IF EXISTS trigger_user_customer_delete;DELIMITER //CREATE TRIGGER trigger_user_customer_delete AFTER DELETE ON tsys_user FOR EACH ROWDELETE FROM ums_customer WHERE user_id = old.user_id // DELIMITER;# 删除DROP TRIGGER IF EXISTS trigger_user_customer_delete;DELIMITER //CREATE TRIGGER trigger_user_customer_delete AFTER DELETE ON tsys_user FOR EACH ROWUPDATE ums_customer SET forbidden = 1 WHERE id = old.user_id // DELIMITER;


参考:https://www.jb51.net/article/186756.htm