エラー: 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 サイトの他の関連記事を参照してください。