【问题标题】:How to get sqlalchemy query for a delete statement?如何获取删除语句的 sqlalchemy 查询?
【发布时间】:2017-11-14 01:04:11
【问题描述】:

我是 sqlalchemy 的新手,几天来一直在尝试解决这个问题!

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

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

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

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

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

在这方面需要帮助!

【问题讨论】:

    标签: python mysql sql sqlalchemy


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-23
      • 2021-05-09
      • 1970-01-01
      • 2013-12-05
      相关资源
      最近更新 更多