码迷,mamicode.com
首页 > 数据库 > 详细

mysql 存储过程

时间:2019-11-09 19:50:39      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:存储   roc   pre   call   begin   order   star   sts   数据库   

数据库的存储过程在正常的线上应用是不会用到了,至少在我工作的这么些年,很少再遇到存储过程。

但在现实的测试过程中,为了快速修改一些数据,还是需要使用到存储过程。

技术图片

 

 

设置的参数的IN, OUT, INOUT 

IN 表示调用者向过程传入值, OUT 表示过程向调用者传出值, INOUT 前两者的结合

create  procedure in_param(in p_in int)

    begin 

        select  p_in;

        set p_in = 2 ;

        select  p_in;

   end 

set @p_in = 1;

call  in_param(@p_in)

declare 定义变量,需要在存储过程中开始

DECLARE    l_int  int  unsingned  default 3000;

set  @y = ‘good bye‘

技术图片

 

 

自己在实际测试过程中,为了快速修改数据:

 

# 修改订单、订单还款计划的起息日,止息日,还款时间,将所有的时间往前推 @days 天, @order_id修改具体的订单;

 

drop PROCEDURE if EXISTS change_date;

CREATE PROCEDURE change_date()

begin 

set @days = 30;

set @order_id = 329221048420433920;

UPDATE inve**nt.order_**ord set s**e = @days where order_id = @order_id;

UPDATE inve**nt.order_**ord set  fin**ype = @days where order_id = @order_id;

UPDATE  inv**nt.order_**ord set **_time = **_time - @days*86400000,  start_**_date = start_**t_date - @days*86400000, end_**_date = end_**_date - @days*86400000

, repa**_date = repa**_date - @days*86400000 , mo**_time = mo**_time - @days*86400000  where order_id =@order_id ;

UPDATE inv**nt.order_**ent set  start_**_date = start_**_date - @days*86400000 , end_**date = end_**t_date - @days*86400000,

**_date = **_date - @days*86400000 , **_time =**_time - @days*86400000, **_time = **_time - @days*86400000  where order_id = @order_id ;

COMMIT;

end;

调用:

CALL  change_date();

 

有时候在进行一些循环操作数据的时候也是可以使用到存储过程的。

mysql 存储过程:https://www.runoob.com/w3cnote/mysql-stored-procedure.html

CREATE [DEFINER = { user | CURRENT_USER }]  PROCEDUREsp_name([proc_parameter[,...]]) [characteristic ...] routine_bodyproc_parameter: [ IN | OUT | INOUT ] param_nametypecharacteristic: COMMENTstring | LANGUAGESQL | [NOT] DETERMINISTIC | { CONTAINSSQL | NOSQL | READSSQLDATA | MODIFIESSQLDATA } | SQLSECURITY { DEFINER | INVOKER } routine_body:   ValidSQLroutinestatement [begin_label:] BEGIN   [statement_list]     …… END [end_label]

mysql 存储过程

标签:存储   roc   pre   call   begin   order   star   sts   数据库   

原文地址:https://www.cnblogs.com/yingchen/p/11827018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!