在执行 SQLAlchemy update() 之后,有没有办法获取更改的值?
Posted
技术标签:
【中文标题】在执行 SQLAlchemy update() 之后,有没有办法获取更改的值?【英文标题】:After doing a SQLAlchemy update(), is there a way to get the changed values? 【发布时间】:2010-01-13 18:48:06 【问题描述】:在调用 update() 之后,我知道返回值有一个 .rowcount 属性,该属性将显示更改了多少行。有没有办法获得它们被更改为的实际新 值?
例如,如果我执行 SQLAlchemy 等效项:
UPDATE t SET x=x+1 WHERE y=z
...有没有办法获得 x 的新值?还是我必须做一个 SELECT?
【问题讨论】:
【参考方案1】:ResultProxy
有两个方法,last_updated_params()
返回一个包含执行语句时发送的每个绑定参数值的字典,以及一个集合 postfetch_cols()
,一个嵌入了内联 SQL 表达式的列列表在 UPDATE 中(您必须为此后选择值)。这些集合仅用于单语句执行,而不是传递多组参数的“executemany”调用。
【讨论】:
你能举一个post-SELECT
嵌入式SQL表达式的例子吗?不知道我什至会把它添加到我的 update
对象中。以上是关于在执行 SQLAlchemy update() 之后,有没有办法获取更改的值?的主要内容,如果未能解决你的问题,请参考以下文章