问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁知道Python如何对MySQL存储过程进行调用?

发布网友 发布时间:2022-04-27 09:49

我来回答

1个回答

热心网友 时间:2022-04-08 00:07

环境:1.MySQL5.0 或者以上支持MySQL存储过程的版本2.安装MySQL-python,目前支持到2.x步骤:一.数据库准备1.建立表view sourceprint?1 CREATE TABLE `Account` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `sm_accountName` VARCHAR(100) COLLATE gbk_chinese_ci NOT NULL DEFAULT '', `sm_password` TEXT COLLATE gbk_chinese_ci NOT NULL, `sm_onlineTime` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `accountNameIndex` (`sm_accountName`) )ENGINE=InnoDB 2.建立MySQL存储过程view sourceprint?01 CREATE PROCEDURE `proctest`(IN i_id BIGINT, IN i_onlinetime BIGINT, OUT o_accname VARCHAR(30), OUT o_a*wd VARCHAR(50)) 02 NOT DETERMINISTIC 03 CONTAINS SQL 04 SQL SECURITY DEFINER 05 COMMENT '' 06 BEGIN 07 select sm_accountName,sm_password 08 into o_accname,o_a*wd 09 from `tbl_Account` where id=i_id and sm_onlineTime=i_onlinetime limit 1; 10 END; 3.插入部分数据view sourceprint?1 INSERT INTO `Account` (`id`, `sm_accountName`, `sm_password`, `sm_onlineTime`) VALUES 2 (1, 'luoshulin', 'asdfsdf', 0), 3 (2, 'test', '1', 0), 4 (3, 'adsfasd', 'asdf', 1); 到这里数据库相关内容就准备好了接下去开始写python脚本二.python脚本view sourceprint?01 #!/usr/bin/env python 02 # -*- coding: utf8 -*- 03 import MySQLdb 04 import time 05 import os, sys, string 06 def CallProc(id,onlinetime): 07 '''调用MySQL存储过程,08 输入参数:编号,在线时间,输出:帐号,密码;09 使用输出参数方式'''10 accname=''11 a*wd=''12 conn = MySQLdb.connect(host='localhost',user='root',passwd='111111',db='ceshi')13 cur =conn.cursor()14 cur.callproc('proctest',(id,onlinetime,accname,a*wd))15 cur.execute('select @_proctest_2,@_proctest_3')16 data=cur.fetchall()17 if data:18 for rec in data:19 accname=rec[0]20 a*wd=rec[1]21 cur.close()22 conn.close();23 return accname,a*wd24 def CallProct(id,onlinetime):25 '''调用MySQL存储过程,26 输入参数:编号,在线时间,输出:帐号源码天空,密码;27 使用select返回记录方式'''28 accname=''29 a*wd=''30 conn = MySQLdb.connect(host='localhost',user='root',passwd='111111',db='ceshi')31 cur =conn.cursor()32 cur.nextset()33 cur.execute('call ptest(%s,%s)',(id,onlinetime))34 data=cur.fetchall()35 if data:36 for rec in data:37 accname=rec[0]38 a*wd=rec[1]39 cur.close()40 conn.close();41 return accname,a*wd42 name,pwd=CallProct(1,0)43 print name,pwd三.测试将python脚本保存为 并执行可以看到结果view sourceprint?1 [root@redhat-dev python]# python pycallproc.py2 luoshulin asdfsdf测试使用的是select返回记录的方式,对于使用输出参数返回结果情况也是一样的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我的世界手游天堂门怎么做 天堂门怎么放水 肌肤暗沉怎么调理?肌肤美白小窍门 该收心回归工作的说说 开启上班模式幽默说说(开启上班模式,享受美好生活) 格兰仕电磁炉e0换245k电阻用两次又烧 格兰仕电磁炉显示E4怎么办? ...于海中小虾,海中大虾……瀚海蛟龙的性质。谢谢了 相亲之后一周都有联系,也有出去吃饭看电影,但不明确男方具体什么态度... 相亲男之前一直对我很好(三天两头喊我看电影,吃饭),正好聊的那段时间我... ...个星期几每天晚上叫我出去吃饭看电影 当然都是他买单 。这样弄的... 中20,中国篮球新星正兑现nba级别天赋!他是谁呢? 04年雅典奥运会中国男篮对新西兰男篮全场比赛下载地址 大洋洲男篮锦标赛是不是只有澳大利亚和新西兰两支球队参加 NBL纽西兰国家联赛比分直播 新西兰如何看体育直播 中国对对新西兰篮球比赛哪个台播出 新西兰国家篮球队的主要球员 谁知道第四套人民币什么时候停用啊?是不是绿色的两元和两角纸币快*啦?? 新西兰国家篮球队的介绍 现在2角纸币*了吗?如果绝了,值多少钱,1980年的(参考) 一九八六年的五分银币值多元?(参考) 第四套人民币整版钞的珍贵绝版 新西兰男子国家篮球队现在世界排名第几? 现在收藏绝版的人民币潜力如何 新西兰篮球联赛是不是每节十分钟制? 一五版百元钞号码是07999888有收藏价值吗? 新西兰篮球联赛? 1元纸币要“绝版”了是真的吗 绝版 绝版 绝版人民币 听说第五套一元人民币纸币要绝版了? 2005年版,编号为L6W3837837的一百元纸币值得收藏吗? 新西兰有没有一个篮球远动员在NBA打球? mssql存储过程 MSSQL的存储过程怎么写? mssql 存储过程 太原商标注册流程是什么 Python如何执行存储过程,获取存储过程返回值 MSSQL存储过程新手请教 求教一个python访问mysql存储过程的问题 关于MSSQL存储过程中数组问题 python 怎么确定连接mssql server 都是去哪里办理商标注册,我是太原的。 mssql一个存储过程如何写 mssql存储过程if...else。判断 太原注册商标的有效期 MSSQL 写一个存储过程按时间段进行查询 mssql 的 存储过程 变量赋值问题 有太原注册商标的代理么?? MSSQL存储过程中的记录集使用问题 solidworks中着色纯白色怎么出来的 solidworks草图点击线条颜色怎么变成白色