mysql存储过程(一)

在使用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');

即可执行该存储过程。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值