2017-11-14 8 views
2

私はsqlalchemyを使い慣れていて、数日間このことを理解しようとしています!これは、テーブル内のすべての行を削除だdeleteステートメントのsqlalchemyクエリを取得する方法は?

mdb_session.query(PendingConfig).filter(PendingConfig.id == config.id).delete()

idが与えられたconfig.idに等しい持ってPendingConfigと呼ば:

は、私は次の行を実行しているいくつかのPythonコードを持っています。

delete()が削除された行の数と等しい整数を返すので、生成するSQLのsqlalchemyという基本的なSQLクエリをログに記録したいが、それを行う方法はわからない。

私はthis postで説明したように、ロガーを設定しようとしましたが、それ自体の問題がありました。

これに助けが必要です!

答えて

1

実際にMySQLサーバーによって実行されたSQLを実際に取得したい場合は、MySQLクエリログまたは低速クエリログを有効にしてデータベースサーバーから読み取ることができます。 MySQLサーバは、Pythonについて何も知らない

https://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html

を参照してください、それだけで、クライアントはそれを実行するためのクエリを送ったことを知っています。

パラメータ化されたクエリの場合は、SQLテキストに?個のプレースホルダが含まれますが、SQLAlchemyではプレースホルダがわかります。 MySQLに送る前に、常にパラメータ値をSQLクエリに補間します。

関連する問題