mysql存储过程(一)

本文介绍了一种在MySQL数据库中使用存储过程批量删除与特定用户手机号关联的所有订单及订单明细的方法,通过创建一个名为delOrders的存储过程,简化了跨表删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用mysql数据库时,有时需要一次操作多张表,简单例子,订单表--orders,订单明细表--order_items,现在需要根据用户的手机号码,删除该用户所有的订单。

如果写sql语句,需要两条,

DELETE  oi.*  from order_items oi LEFT JOIN  orders o on o.id = oi.container_id LEFT JOIN users u ON o.user_id = u.id  where u.user_mobile ='13262828100';

DELETE o.* from orders o LEFT JOIN users u ON o.user_id = u.id where u.user_mobile  ='13262828100';

如果,有多张表,每次在里面填写user_mobile的值很浪费时间。

此时,可以使用存储过程解决。


navicat中,函数--右键--新建函数--过程--模式;out--名:mobile--类型:varchar,将上面代码中的电话号码13262828100改为mobile,

BEGIN
    
DELETE  oi.*
from order_items oi
LEFT JOIN  orders o on o.id = oi.container_id
LEFT JOIN users u ON o.user_id = u.id
where u.user_mobile = mobile ;

DELETE o.*
from orders o
LEFT JOIN users u ON o.user_id = u.id
where u.user_mobile  = mobile ;
END


保存,输入存储过程名称--delOrders,

打开查询窗口,call ss('13262828100');

即可执行该存储过程。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值