2016-12-28 6 views
3

私はpythonでMySQLを使用しており、ストアドプロシージャから複数のデータリストを取得したいと考えています。MySQL StoredProcedureから複数のリスト/データを取得

私は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 

どのような助けもあります。

おかげ

+0

これらのすべての合併症はなぜですか?なぜ単にpythonで3つのクエリを実行しないのですか? – e4c5

+0

私はquiresを繰り返し実行して結果を作成したくありません。これを行うことで、クエリ実行時間を節約できます! –

+1

あなたはどのようにあなたの結果をPythonで手に入れようとしていますか? –

答えて

4

あなたは次の結果セットにジャンプするためにあなたのPython cursornextset()方法を使用してみましたか? (python.org/dev/peps/pep-0249/#nextset)

これを試してもうまくいかない場合、あなたは不運です。 Pythonプログラムは、単一のストアドプロシージャから複数の結果セットを取得することはできません。

MySQLストアドプロシージャはカプセル化の利点を提供しますが、効率の利点は提供しません。ストアドプロシージャ内で3つのクエリを発行するのにかかる時間は、Pythonプログラムから次々に発行される時間と同じです(またはそれよりもわずかに高い)。ここでその一部の説明があります。 http://www.joinfu.com/2010/05/mysql-stored-procedures-aint-all-that/

+0

私のSQLストアプロシージャの間違いなく素晴らしい記事。しかし、それは7歳ですが、それでもブログの投稿に記載されている人物はほとんど変更されていないとコメントした人はほとんどいません。最新情報をお知らせください。 –

関連する問題