mysql 存储过程

Posted yingchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 存储过程相关的知识,希望对你有一定的参考价值。

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

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

 

 

设置的参数的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: COMMENT\'string\' | LANGUAGESQL | [NOT] DETERMINISTIC | { CONTAINSSQL | NOSQL | READSSQLDATA | MODIFIESSQLDATA } | SQLSECURITY { DEFINER | INVOKER } routine_body:   ValidSQLroutinestatement [begin_label:] BEGIN   [statement_list]     …… END [end_label]

以上是关于mysql 存储过程的主要内容,如果未能解决你的问题,请参考以下文章

mysql中的存储过程怎么使用

mysql 创建存储过程问题

MYSQL存储过程注释详解

MYSQL存储过程注释详解

mysql 存储过程总结(一)

mysql中如何创建存储过程