Python MySQL ストアド プロシージャで「コマンドが同期していません」エラーがスローされるのはなぜですか?それを修正するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-20 03:40:01
オリジナル
341 人が閲覧しました

Why Does My Python MySQL Stored Procedure Throw a

エラー: Python-MySQL ストアド プロシージャの「コマンドが同期していません」

という MySQL ストアド プロシージャ内で複数のステートメントを実行しようとするとPython から実行すると、「コマンドが同期していません。現在このコマンドを実行できません」というエラーが発生する場合があります。この問題は通常、ストアド プロシージャを呼び出した後に 2 番目のステートメントを実行するときに発生します。

解決策

このエラーを解決するには、ストアド プロシージャを呼び出した後にカーソルを閉じる必要があります。プロシージャを作成し、後続のステートメントを実行する前に新しいプロシージャを開きます。これにより、カーソルとストアド プロシージャ間の接続が切断され、競合することなく他の操作を実行できるようになります。

このソリューションを組み込んだ更新されたコード ブロックは次のとおりです。

cursor.callproc('my_mysql_procedure', [some_id,])
result = cursor.fetchall()
for r in result:
    do something

cursor.close()  # Close the cursor after stored procedure execution

cursor = connection.cursor()  # Open a new cursor
cursor.execute("select * from some_table")
result = cursor.fetchall()
ログイン後にコピー

カーソルを開き、ストアド プロシージャから結果を取得した直後にカーソルを再度開くと、「コマンドが同期していない」エラーを引き起こすことなく、カーソルの状態を効果的にリセットし、追加のステートメントの実行を有効にすることができます。

以上がPython MySQL ストアド プロシージャで「コマンドが同期していません」エラーがスローされるのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート