私はこれをテストしようとしてきましたが、決定的な答えを得ることができませんでした。私はMySQLの上でSQLAlchemyを使用しており、選択を行うスレッドを防ぐために、SHARED_READ
をいくつかのテーブルにロックし、それを保持します(解放されるまで、将来のDDL操作を防止します)。これは、照会がコミットされない場合に発生します。私は.execute()
がモードで本質的に動作し、COMMIT
を発行するとSQLAlchemy Coreを使用しています。それにもかかわらず、show processlist
では、一度問い合わせたテーブルにまだSHARED_READ
のロックを持つスリープスレッドが表示されています。何がありますか?SQLAlchemy Coreでのコミットはいつ行われますか?
0
A
答えて
1
あなたのポストからは、SQLAlchemy Connection
(進行中のトランザクションなし)または簡略engine.execute()
のいずれかを使用して、「非トランザクション」モードで動作していると仮定します。この動作モードでは、SQLAlchemyはINSERT
,UPDATE
、DELETE
、およびDDL文を検出し、自動的に後でコミットを発行しますが、SELECT
文のようにすべてではありません。 "Understanding Autocommit"を参照してください。
conn.execute(text('SELECT ...').execution_options(autocommit=True))
を使用し、コミット必要がないストアドプロシージャと、そのような変異を選択するためにあなたはまた、スレッドが当分の間、彼らと一緒に行われたときに接続を閉じる検討すべきです。クローズすると、基礎となるDBAPI接続にrollback()
が呼び出されます。これは、PEP-0249が(おそらく)常にトランザクション状態です。これにより、トランザクション状態やロックが解除され、接続プールに接続が返されます。この方法では、自動コミットしない選択について心配する必要はありません。
関連する問題
- 1. php.iniの変更はいつphp-coreで行われますか?
- 2. SQLAlchemy:コミット後にオブジェクトマッピングが失われる?
- 3. SQLAlchemyクエリ - クエリはいつ実行されますか?
- 4. 更新はmysqlサーバflask-sqlalchemyでコミットされていません
- 5. SQLAlchemyがピクルスタイプをコミットしています
- 6. SQLAlchemyのエラー処理 - それはどのように行われますか?
- 7. SQLAlchemy Coreで複数の独立した文を実行しますか?
- 8. Gitは2つのコミットが先行していると言いますが、1と思われます。
- 9. データベースはSQLAlchemyでいつ実際に照会されますか?
- 10. 再レンダリングはいつvueで正確に行われますか?
- 11. diffはgitpythonで2つのブランチのコミットを行います
- 12. SQLAlchemy:コミット後もセッションクエリは引き続き機能しますか?
- 13. なぜsqlalchemyはpostgresqlに挿入を行わないのですか?
- 14. IntelliJのScalaインクリメンタルコンパイルはいつ行われますか?
- 15. グローバル変数の初期化はいつ行われますか?
- 16. Angular-CLIでは、ハンドルバーはいつ実行され、HTMLテンプレート補間はいつ行われますか?
- 17. SQLAlchemyリレーションシップとコミットされていないオブジェクトの複雑さ
- 18. ASP.NET Core 2.0の翻訳は常に英語で行われます
- 19. EntityManagerはいつコミットしますか?
- 20. git push to remote:コミットは行われていますが、ファイルは表示されませんか?
- 21. ファイル内で行われたコミットの変更を確認するにはどうすればよいですか?
- 22. NSUserDefaultsの代わりにCore Dataにアプリケーション状態が含まれるのはいつですか?
- 23. WHEREフィルタリングはいつ行われますか?
- 24. カフカリーダー選挙はいつ行われますか?
- 25. スプリント計画はいつ行われますか?
- 26. Angular2:プロパティバインドはいつ行われますか?
- 27. 2つのコミットまたは2つのブランチで異なるコード行数はいくつですか?
- 28. Flaskでのページングにsqlalchemy coreを使用するにはどうすればよいですか?
- 29. 一般的なインスタンス化はいつ行われますか(つまり、単語の意味は何ですか)?
- 30. Flask-SQLAlchemyのコミット/ロールバックをよりうまく処理できますか?