博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySql存储过程
阅读量:4620 次
发布时间:2019-06-09

本文共 1496 字,大约阅读时间需要 4 分钟。

---恢复内容开始---

存储过程:

建立存储过程

create procedure 过程名(in  参数1 数据类型,out 参数2 数据类型):

begin

  代码块

end

同样需要使用delimiter 修改结束符,sql使用call 过程名(参数1) 来调用,pymysql使用cursor.callproc('过程名‘,(参数1,))来调用

----in:传入的参数

---out:传出的参数

create procedure 过程名(in  参数1 数据类型,out 参数2 数据类型):begin  代码块      参数2 = 返回值        end;---参数2 为 @变量名,

 mysql调用

set@变量名 =  任意值 (@变量名为session级别变量);

call 过程名(参数1,@变量名);#得到结果集

select @变量名; #得到out的参数

pymysql调用

cursor.callporc('过程名‘,(参数1,参数2))#如果参数为out型,则可以出入符合类型的任意值

r1 = cursor.fetchall()#获得结果集

cursor.execute('select @_过程名_参数位置’)#参数位置为调用时参数元组的索引,从0 开始

r2 =cursor.defchall()#获得相关参数

事物

创建事物

create procedure 事物名(out 参数名 数据类型)

begin

  declare exit handler fro sqlexception

  begin

  --error

    set 参数名 = 1;

    rollback;

  end;

  start transaction;

    代码块;

  commit;

  --sucess

   set 参数名 = 2 ;

   end;

 包含循环、游标的创建过程

create procedure 过程名()

begin

  declare 变量1 数据类型;

  declare 变量2 数据类型; 

  declare done int default faulse;--声明变量done默认为faulse

  declare 游标名 cursor for select 字段名1,字段名2 from 表名;

  declare continue handler for not found set done = True;--检测数据,如果没有数据则设置done 为true

  open 游标名;

    循环名:loop

        fetch 游标名 into 变量1,变量2;

        if done then leave 循环名;

      end if;

      代码块

      insert into   表名(字段名)values(变量名);

    end loop 循环名;

  close 游标名;

end;

 

动态执行sql(防止注入)

create procedure 过程名(

  in 变量名  int)

begin 

  set @临时变量名 = 变量名;

  prepare  语句名 from ‘select *from student where sid>?';

  execute 语句名 using @临时变量名;

  deallocate prepare 语句名;

end;

 

转载于:https://www.cnblogs.com/modengdai/p/9912531.html

你可能感兴趣的文章
PHP中获取当前页面的完整URL
查看>>
所谓输入掩码技术,即只有数字键起作用
查看>>
Display对象,Displayable对象
查看>>
安装oracle11G,10G时都会出现:注册ocx时出现OLE初始化错误或ocx装载错误对话框
查看>>
生产环境下正则的应用实例(一)
查看>>
在CentOS7命令行模式下安装虚拟机
查看>>
Arduino可穿戴开发入门教程Arduino开发环境介绍
查看>>
Windows平台flex+gcc词法分析实验工具包
查看>>
3.Python基础 序列sequence
查看>>
Chapter 4 Syntax Analysis
查看>>
vi/vim使用
查看>>
讨论Spring整合Mybatis时一级缓存失效得问题
查看>>
Maven私服配置Setting和Pom文件
查看>>
Linux搭建Nexus3.X构建maven私服
查看>>
NPOI 操作Excel
查看>>
MySql【Error笔记】
查看>>
vue入门
查看>>
JS线程Web worker
查看>>
Flex的动画效果与变换!(三)(完)
查看>>
mysql常见错误码
查看>>