如何获取sqlalchemy查询删除语句?

时间:2017-11-14 01:04:11

标签: python mysql sql sqlalchemy

我是sqlalchemy的新手,并且已经尝试了好几天了!

我有一些python代码正在执行以下行:

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

它正在删除名为PendingConfig的表格中的所有行,id等于给定的config.id

我想记录生成但不知道如何操作的基础SQL查询sqlalchemy,因为delete()返回的整数等于删除的行数。

我尝试设置一个记录器但是它有自己的问题,正如我在this post中所解释的那样。

需要帮助!

1 个答案:

答案 0 :(得分:1)

如果你真的想要获得MySQL服务器实际运行的SQL,那么你可以启用MySQL查询日志或慢查询日志,并从数据库服务器读取它。

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

MySQL服务器对Python一无所知,只知道客户端发送了一个查询来执行。

如果它是参数化查询,它将在SQL文本中包含?个占位符,但据我所知,SQLAlchemy不会占位符。在将参数值发送到MySQL之前,它总是将参数值插入到SQL查询中。