从MySQL StoredProcedure获取多个列表/数据

时间:2016-12-28 11:35:26

标签: python mysql stored-procedures

我在python使用MySQL工作,希望从存储过程中获取多个数据列表。

我正在使用PyMySql来连接我的数据库。并试图做这样的事情,但它不起作用

CREATE DEFINER=`root`@`%` PROCEDURE `spGetData`(IN ssscreenId INT(11),)
BEGIN
    SELECT clientId, clientName FROM apl_cb.Client WHERE isActive = 1 AND isDeleted = 0;

    SELECT bankId, bankName, bankAddress FROM apl_cb.Bank WHERE isDeleted = 0 AND isActive = 1;

    SELECT eventId, eventName, eventGroup FROM  apl_cb.Event WHERE isActive = 1 AND isDeleted = 0 AND menuEvent = 0 AND screenId = ssscreenId;

END

任何形式的帮助都将受到赞赏。

感谢

1 个答案:

答案 0 :(得分:4)

您是否尝试在Python nextset()上使用cursor方法跳转到下一个结果集? (python.org/dev/peps/pep-0249/#nextset)

如果你已经尝试过,它不起作用,那你就不走运了;您的Python程序将无法从单个存储过程中检索多个结果集。

请记住,MySQL存储过程提供封装优势,但不提供效率优势。在存储过程中发出三个查询所花费的时间与从Python程序一个接一个地发出它们的时间相同(或者可能稍微高一点)。这是对其中一部分的解释。 http://www.joinfu.com/2010/05/mysql-stored-procedures-aint-all-that/