python 无法执行mysql存储过程中的函数更新
CREATE DEFINER=`root`@`localhost` PROCEDURE `link_check`(IN xlh VARCHAR(64))
BEGIN
DECLARE xlhExist INT;
DECLARE jid INT;
DECLARE jcode INT;
DECLARE jmsg VARCHAR(256);
SELECT COUNT(id) , id INTO xlhExist, jid FROM table_client_state WHERE xuliehao=xlh;
IF xlhExist THEN
/*存在的话,是否超时*/
SELECT "", 0 INTO jmsg, jcode;
ELSE
/*不存在,*/
SELECT "", 2 , getRSId(1) INTO jmsg, jcode, jid;
END IF;
SELECT jid AS id, jmsg AS msg, jcode AS CODE;
/*写入日志*/
INSERT INTO table_log (xuliehao, random_service_id, msg )VALUE(xlh, jid, jmsg);
END$$
DELIMITER ;
getRSId(1)函数和 INSERT INTO没有执行。
CREATE DEFINER=`root`@`localhost` FUNCTION `getRSId`(aid BIGINT(20)) RETURNS BIGINT(20)
BEGIN
DECLARE jid BIGINT;
UPDATE table_admin SET rs_id=(@jid:=rs_id+1) WHERE id=aid;
RETURN @jid;
END$$
DELIMITER ;
db = pymysql.connect(self.host, self.user, self.pw, self.dbname, charset='utf8')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor(cursor=pymysql.cursors.DictCursor)
sql = 'CALL link_check("%s");'%key
# 使用 execute() 方法执行 SQL 查询
cursor.execute(sql)
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("data : %s " % data)
# 关闭数据库连接
cursor.close()
db.close()
BEGIN
DECLARE xlhExist INT;
DECLARE jid INT;
DECLARE jcode INT;
DECLARE jmsg VARCHAR(256);
SELECT COUNT(id) , id INTO xlhExist, jid FROM table_client_state WHERE xuliehao=xlh;
IF xlhExist THEN
/*存在的话,是否超时*/
SELECT "", 0 INTO jmsg, jcode;
ELSE
/*不存在,*/
SELECT "", 2 , getRSId(1) INTO jmsg, jcode, jid;
END IF;
SELECT jid AS id, jmsg AS msg, jcode AS CODE;
/*写入日志*/
INSERT INTO table_log (xuliehao, random_service_id, msg )VALUE(xlh, jid, jmsg);
END$$
DELIMITER ;
getRSId(1)函数和 INSERT INTO没有执行。
CREATE DEFINER=`root`@`localhost` FUNCTION `getRSId`(aid BIGINT(20)) RETURNS BIGINT(20)
BEGIN
DECLARE jid BIGINT;
UPDATE table_admin SET rs_id=(@jid:=rs_id+1) WHERE id=aid;
RETURN @jid;
END$$
DELIMITER ;
db = pymysql.connect(self.host, self.user, self.pw, self.dbname, charset='utf8')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor(cursor=pymysql.cursors.DictCursor)
sql = 'CALL link_check("%s");'%key
# 使用 execute() 方法执行 SQL 查询
cursor.execute(sql)
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("data : %s " % data)
# 关闭数据库连接
cursor.close()
db.close()
...全文
相关推荐
mysql 二进制转换工具
**MySQL函数提权**: 在描述中提到的“建立函数提权”可能是指利用MySQL的存储过程或函数来获取更高的权限。
Python批量更新MySQL数据
在数据管理和处理过程中,有时需要批量更新MySQL数据库中的数据。未来的扩展可以包括更复杂的数据更新操作,例如根据条件进行多表连接更新,或使用事务回滚机制来处理错误情况。Python批量更新MySQL数据可以提高数据处理和管理的效率,特别是在处理大量数据或进行数据转换时。使用Python可以方便地批量更新MySQL数据库中的数据。通过与MySQL数据库建立连接,执行更新操作,并提交事务,可以实现高效的数据更新。以下是使用Python进行批量更新MySQL数据的示例代码,使用的是。变量用于存储要更新的数据。
Python通过调用mysql存储过程实现更新数据功能示例
本篇文章将详细阐述如何通过Python调用MySQL存储过程来实现数据更新。首先,存储过程是一种预编译的SQL语句集合,它可以接受输入参数,执行一系列操作,并返回结果。
python连接mysql调用存储过程示例
存储过程是预编译的SQL语句集合,可以在数据库端执行,提高数据操作的效率和安全性。首先,确保已安装了`MySQLdb`库,这是Python连接MySQL的常用库。
Python简单调用MySQL存储过程并获得返回值的方法
在Python编程中,调用MySQL数据库的存储过程并获取返回值是常见的操作,尤其是在执行复杂的数据库操作时。这里我们将详细探讨如何使用Python的`MySQLdb`库来完成这个任务。


疑难问题
