1修改分隔符符号
delimiter $$
可以修改成$$ // 都行
2创建触发器函数名称
create trigger 函数名
3什么样的操作触发,操作那个表
after:....之后触发
before:....之前触发
inser:插入被触发
uodate:修改被触发
delete:删除被触发
on表名
实例:在users表被添加信息后触发
after insert on users
4for each row 声明每次触发器都被执行
5开发触发器代码
begin
6触发器触发后执行代码块
7结束触发器
end;
8修改分隔符
$$
delimiter;
-- 触发器名称:after_user_insert
-- 功能描述:在user表插入新记录后,自动为新用户创建wallet记录
-- 触发时机:AFTER INSERT
-- 触发对象:user表
-- 触发行为:FOR EACH ROW(对每一行插入操作触发)
DELIMITER $$ -- 更改默认的语句分隔符为$$,这样可以在触发器内部使用分号
CREATE TRIGGER after_user_insert -- 创建一个名为after_user_insert的触发器
AFTER INSERT ON user -- 触发器在user表发生INSERT操作之后触发
FOR EACH ROW -- 触发器对每一行插入操作都执行一次
BEGIN -- 触发器开始
--执行代码块
END; -- 触发器结束
$$ -- 触发器定义结束,使用新的分隔符
DELIMITER ; -- 将语句分隔符改回为分号
测试语句
-- 插入新用户记录,触发器应自动在user_wallet表中创建对应wallet记录
INSERT INTO user (username, password, email, phone)
VALUES ('孙燕姿', 'password123', 'newuser@example.com', '1234567890');
-- 查询user_wallet表确认新wallet记录是否存在
-- 完整的多表联合查询确认
select u.*,uw.balance from `user` u INNER JOIN user_wallet uw on u.user_id=uw.user_id where username='孙燕姿';
-- 简单的子查询
SELECT * FROM user_wallet WHERE user_id = (SELECT user_id FROM user WHERE username = '孙燕姿');
标签:触发,触发器,--,after,wallet,user,MySQL,结构 From: https://blog.csdn.net/2302_80727358/article/details/139743201