时间:2021-07-01 10:21:17 帮助过:54人阅读
- <span style="color: #008080;">--</span><span style="color: #008080;"> 带传入参数存储过程(in 参数):</span>
- <span style="color: #008080;">--</span><span style="color: #008080;"> 创建存储过程</span>
- DELIMITER <span style="color: #808080;">//</span>
- <span style="color: #0000ff;">CREATE</span> <span style="color: #0000ff;">PROCEDURE</span> text02(<span style="color: #808080;">in</span> num <span style="color: #0000ff;">int</span><span style="color: #000000;">) #依旧是创建存储过程的名字,但是在括号 in关键字 变量名 变量类型
- </span><span style="color: #0000ff;">BEGIN</span>
- <span style="color: #0000ff;">SELECT</span> <span style="color: #808080;">*</span> <span style="color: #0000ff;">FROM</span> infolist <span style="color: #0000ff;">where</span> id<span style="color: #808080;">=</span><span style="color: #000000;">num; #执行的操作
- </span><span style="color: #0000ff;">END</span>
- <span style="color: #808080;">//</span><span style="color: #000000;">
- DELIMITER ;
- </span><span style="color: #008080;">--</span><span style="color: #008080;"> 使用存储过程</span>
- <span style="color: #0000ff;">set</span> <span style="color: #008000;">@num</span><span style="color: #808080;">=</span><span style="color: #800000; font-weight: bold;">2</span><span style="color: #000000;"> #定义变量
- call text02(</span><span style="color: #008000;">@num</span>) #将变量传入到存储过程中
- <span style="color: #008080;">--</span><span style="color: #008080;"> 带传入参数存储过程(out 参数)</span>
- delimiter <span style="color: #808080;">//</span>
- <span style="color: #0000ff;">create</span> <span style="color: #0000ff;">procedure</span> text03(out mydata <span style="color: #0000ff;">int</span><span style="color: #000000;">) #out关键字 定义变量mydata 整型
- </span><span style="color: #0000ff;">begin</span>
- <span style="color: #0000ff;">select</span> id <span style="color: #0000ff;">into</span> mydata <span style="color: #0000ff;">from</span> infolist <span style="color: #0000ff;">where</span> id<span style="color: #808080;">=</span><span style="color: #800000; font-weight: bold;">1</span>; #将id 传递(<span style="color: #0000ff;">into</span><span style="color: #000000;">)给变量mydata
- </span><span style="color: #0000ff;">end</span>
- <span style="color: #808080;">//</span><span style="color: #000000;">
- delimiter ;
- </span><span style="color: #008080;">--</span><span style="color: #008080;"> 使用存储过程</span>
- <span style="color: #0000ff;">set</span> <span style="color: #008000;">@num</span> <span style="color: #808080;">=</span> <span style="color: #800000; font-weight: bold;">0</span><span style="color: #000000;">;
- call text03(</span><span style="color: #008000;">@num</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">select</span> <span style="color: #008000;">@num</span>;
- <span style="color: #008080;">--</span><span style="color: #008080;"> 带传入参数存储过程(inout 参数)</span>
- delimiter <span style="color: #808080;">//</span>
- <span style="color: #0000ff;">create</span> <span style="color: #0000ff;">procedure</span> text04(inout num <span style="color: #0000ff;">int</span><span style="color: #000000;">)
- </span><span style="color: #0000ff;">begin</span>
- <span style="color: #0000ff;">set</span> num :<span style="color: #808080;">=</span> num <span style="color: #808080;">*</span><span style="color: #800000; font-weight: bold;">50</span><span style="color: #000000;">;
- </span><span style="color: #0000ff;">end</span>
- <span style="color: #808080;">//</span><span style="color: #000000;">
- delimiter ;
- </span><span style="color: #008080;">--</span><span style="color: #008080;">使用存储过程</span>
- <span style="color: #0000ff;">set</span> <span style="color: #008000;">@num</span> <span style="color: #808080;">=</span> <span style="color: #800000; font-weight: bold;">177</span><span style="color: #000000;">;
- call text04(</span><span style="color: #008000;">@num</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">select</span> <span style="color: #008000;">@num</span>;
应用场景:
我现在有一台主机,一台主机内有两个内存条 我已经获取到了主机的信息.
现在已经建立了 主机表 以及内存表,其中内存表有一个外键指向主机ID
我现在要插入主机数据,同时增加主机表信息,以及内存表信息.
- <span style="color: #000000;"> # 存储过程定义
- delimiter </span><span style="color: #808080;">//</span>
- <span style="color: #0000ff;">create</span> <span style="color: #0000ff;">procedure</span> t1_add_t2(<span style="color: #808080;">in</span> t1_name <span style="color: #0000ff;">varchar</span>(<span style="color: #800000; font-weight: bold;">255</span>),<span style="color: #808080;">in</span> t2_name <span style="color: #0000ff;">varchar</span>(<span style="color: #800000; font-weight: bold;">255</span><span style="color: #000000;">))
- </span><span style="color: #0000ff;">begin</span>
- <span style="color: #0000ff;">insert</span> <span style="color: #0000ff;">into</span> t1(name) <span style="color: #0000ff;">values</span><span style="color: #000000;">(t1_name);
- </span><span style="color: #0000ff;">insert</span> <span style="color: #0000ff;">into</span> t2(name,t1_id) <span style="color: #0000ff;">VALUes</span><span style="color: #000000;">(t2_name,LAST_INSERT_ID());
- </span><span style="color: #0000ff;">end</span>
- <span style="color: #808080;">//</span><span style="color: #000000;">
- delimiter ;
- # 使用存储过程
- </span><span style="color: #0000ff;">set</span> <span style="color: #008000;">@t1_name</span> <span style="color: #808080;">=</span> <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">anec</span><span style="color: #ff0000;">‘</span><span style="color: #000000;">;
- </span><span style="color: #0000ff;">set</span> <span style="color: #008000;">@t2_name</span> <span style="color: #808080;">=</span> <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">school_master</span><span style="color: #ff0000;">‘</span><span style="color: #000000;">;
- call t2_add_t1(</span><span style="color: #008000;">@t1_name</span>,<span style="color: #008000;">@t2_name</span>);
删除存储过程:
- <span style="color: #000000;">删除存储过程
- </span><span style="color: #0000ff;">drop</span> <span style="color: #0000ff;">procedure</span> 存储过程名;
查看有哪些存储过程
- <span style="color: #000000;"># 查看有哪些存储过程
- show </span><span style="color: #0000ff;">procedure</span> status;
row_count() #得到操作行数
- <span style="color: #000000;">row_count(); 得到操作行数。(单独用没用)
- 例子:插入数据
- </span><span style="color: #0000ff;">INSERT</span> test(username) <span style="color: #0000ff;">VALUES</span>(<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">A</span><span style="color: #ff0000;">‘</span>),(<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">B</span><span style="color: #ff0000;">‘</span>),(<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">C</span><span style="color: #ff0000;">‘</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">SELECT</span> ROW_COUNT(); <span style="color: #808080;">//</span>返回被插入的记录总数 结果为3
last_insert_id() #返回 最后一次插入自增列的id
- <span style="color: #0000ff;">select</span> LAST_INSERT_ID();
mysql 存储过程
标签:例子 inf nbsp select status val 定义变量 返回 函数