mysql 创建简单的临时表 tmp

  1. create database test;
  2. use test;
  3. DROP TABLE IF EXISTS `tmp`;
  4. CREATE TABLE `tmp` (
  5. `id` int(11) NOT NULL AUTO_INCREMENT,
  6. `name` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  7. PRIMARY KEY (`id`) USING BTREE
  8. ) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic;
  9. INSERT INTO `tmp` VALUES (1, 'klvchen');
  10. INSERT INTO `tmp` VALUES (2, 'lily');
  11. INSERT INTO `tmp` VALUES (3, 'lucy');
  12. INSERT INTO `tmp` VALUES (4, 'james');
  13. INSERT INTO `tmp` VALUES (5, 'jim');

mysql 创建存储过程

  1. delimiter $$ # 自定义 mysql 的分隔符
  2. CREATE PROCEDURE p1(
  3. in i1 int, # 仅用于传入参数用
  4. in i2 int,
  5. inout i3 int, # 既可以传入又可以当作返回值
  6. out r1 int # 仅用于返回值用,外部传进来的值无用
  7. )
  8. BEGIN
  9. DECLARE temp1 int;
  10. DECLARE temp2 int default 0;
  11. set temp1 = 1;
  12. set r1 = i1 + i2 + temp1 + temp2;
  13. set i3 = i3 + 100;
  14. SELECT * FROM tmp;
  15. end $$
  16. delimiter ;

python 调用 mysql 存储过程

  1. import pymysql
  2. PY_MYSQL_CONN_DICT = {
  3. "host" : '192.168.0.214',
  4. "port" : 3306,
  5. "user" : 'root',
  6. "passwd" : '123456',
  7. "db" : 'tmpdb'
  8. }
  9. conn = pymysql.connect(**PY_MYSQL_CONN_DICT)
  10. cusor = conn.cursor(cursor=pymysql.cursors.DictCursor)
  11. # 调用 p1 存储过程,传入4个参数
  12. cusor.callproc('p1', args=(1, 2, 3, 4))
  13. # 返回获得的集合,即存储函数中的 SELECT * FROM tmp; 结果
  14. res1 = cusor.fetchall()
  15. print(res1)
  16. # 以 python 固定格式获取返回的值:@_存储过程名_0, 第一个返回值
  17. cusor.execute("select @_p1_0, @_p1_1, @_p1_2, @_p1_3")
  18. res2 = cusor.fetchall()
  19. print(res2)
  20. conn.commit()
  21. cusor.close()
  22. conn.close()

Python 执行 mysql 存储过程的更多相关文章

  1. JDBC连接执行MySQL存储过程报权限错误

    今天在测试项目的时候  突然就报了一个错出来. User does not have access to metadata required to determine stored procedure ...

  2. JDBC连接执行 MySQL 存储过程报权限错误:User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted,

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  3. JDBC连接执行mysql存储过程报权限错误:User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted,

    分析:JDBC在调用存储过程时不光用户要有execute的权限,还需要对mysql.proc具有访问权限.否则它无法访问metadata 解决方案:给数据库用户赋权,赋执行mysql.proc表的se ...

  4. python 调用mysql存储过程返回结果集

    存储过程: delimiter | ),)) begin select * from tb_test where mid = imid and user = iuser; end; | delimit ...

  5. MySQL存储过程(转)

    一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b" ...

  6. JDBC使用MySQL存储过程错误

    JDBC连接执行 MySQL 存储过程报权限错误:User does not have access to metadata required to determine stored procedur ...

  7. Mysql 存储过程基本语法

    delimiter //一般情况下MYSQL以:结尾表示确认输入并执行语句,但在存储过程中:不是表示结束,因此可以用该命令将:号改为//表示确认输入并执行. 一.创建存储过程 1.基本语法: crea ...

  8. mysql存储过程 基本语法

    话不多说 一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b& ...

  9. Mysql存储过程入门介绍

    delimiter //一般情况下MYSQL以:结尾表示确认输入并执行语句,但在存储过程中:不是表示结束,因此可以用该命令将:号改为//表示确认输入并执行. 一.创建存储过程 1.基本语法: crea ...

随机推荐

  1. Android Studio 3.0 变化之 implementation与compile

    Android Studio 3.0 出来很久了,本文就着重介绍一下 新版本中 Moudle 中 build.gradle 文件中的变化. 我们来看看新建一个项目在 Moudle 中的 depende ...

  2. nginx安装配置并布置网站

    之前做的网站都是用的apache,关于apache和Nginx的区别也不说了,百度上也都有,而且apche和nginx可以共存,这个之后再说. 首先安装nginx,我用的云主机,直接用yum安装 #y ...

  3. 每天学点SpringCloud(七):路由器和过滤器-Zuul

    为什么要使用Zuul 先来看一下下方这个图 假如现在我们具有四个微服务,分别是用户.订单.支付.催收微服务,它们的调用方式分别是使用http.restful.thrift.kafka.这个时候如果我们 ...

  4. HTML5之日历控件

    HTML5定义了几个与日期有关的新控件.支持日期控件的浏览器会提供一个方便的下拉式日历,供用户选择. 以下测试和截图都是在谷歌浏览器完成的,其他浏览器可能略有差异. 1.日期时间控件 HTML代码: ...

  5. Eclipse 修改自动补全触发器只能输入四个字符为多个字符

    如果eclipse中的[auto activation triggers for java]自动补全触发器这个位置的文本框有时候只能输入4个字符, 可以通过修改配置文件的方法实现,具体操作步骤如下: ...

  6. 《深入浅出nodejs》读书笔记(2)

    概述 本来是想着学学node.js试试的,后来发现node.js才是真正的js啊,它里面用到了很多我们平时没用过的js特性,而且还非常优雅,比如它里面的异步编程思想,总之,<深入浅出node.j ...

  7. postgresql 安装文档

    tar xf postgresql-9.4.5.tar.gz cd postgresql-9.4.5 yum grouplist yum grouplist|grep Deve yum groupin ...

  8. springbean的生命周期

    1.Spring对Bean进行实例化(相当于程序中的new Xx())2.Spring将值和Bean的引用注入进Bean对应的属性中3.如果Bean实现了BeanNameAware接口,Spring将 ...

  9. CentOS安装Nginx Pre-Built

    CentOS安装Nginx Pre-Built比较简单,具体可参见:http://nginx.org/en/linux_packages.html#stable. 本文列出详细步骤,已做备份: cat ...

  10. Git+Hexo搭建个人博客详细过程

    通过Git+Hexo搭建的个人博客地址:https://liangh.top/ 1.安装Node.js.配置好Node.js环境.安装Git和配置好Git环境,打开cmd命令行,成功界面如下 2.安装 ...