MySQL触发器基本结构

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 = '孙燕姿');

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值