new (表操作新的数据)
old (表操作旧的数据)
/** 删除触发器 */ DROP TRIGGER `库名称`.`触发器名称`;
/** 查看触发器 */ SELECT * FROM information_schema.`TRIGGERS`;
1. 部门表名称变了以后, 将其他表中存储的部门名称全部更新.
/** 创建触发器 在sys_department表有更新的时候,同步更新其他表的department_name */
DELIMITER $$
CREATE
TRIGGER `库名称`.`触发器名称(自己起一个)` AFTER INSERT
ON `库名称`.`sys_department`
FOR EACH ROW BEGIN
/* 表1 */
UPDATE `库名称`.`表1名称` SET department_name = new.department_name WHERE department_id = old.department_id AND department_name != new.department_name;
/* 表2 */
UPDATE `库名称`.`表2名称` SET department_name = new.department_name WHERE department_id = old.department_id AND department_name != new.department_name;
END$$
DELIMITER ;
2. 用户表创建的时候, 创建用户账户表
/** 创建触发器 在sys_user表有新增的时候,同步创建他的账户信息 */
DELIMITER $$
CREATE
TRIGGER `库名称`.`触发器名称(自己起一个)` AFTER INSERT
ON `库名称`.`sys_user`
FOR EACH ROW BEGIN
INSERT INTO `库名称`.`user_account`(
uid,
account_money,
account_number
) VALUES(
new.user_id, # 使用用户表的id作为账户表的id
0, # 初始金额0
SUBSTR(REPLACE(UUID(),"-",""),16) # 16位随机数作为账户编号
);
END$$
DELIMITER ;
|