5

sqlalchemy を使用した update ステートメントの影響を受ける行数を取得するにはどうすればよいですか? (私は mysql と python/pyramid を使用しています):

from sqlalchemy.engine.base import ResultProxy

@classmethod
def myupdate(cls, id, myvalue):
    DBSession.query(cls).filter(cls.id == id).update({'mycolumn': myvalue})
    if ResultProxy.rowcount == 1:
        return True
    else:
        return False

注:この投稿を見ましたが、ドキュメントによると:「「行数」は、UPDATE または DELETE ステートメントの WHERE 条件に一致する行数を報告します。つまり、数値を返しません。update または delete ステートメントの影響を受ける行の数。

4

1 に答える 1

1

docによると、DBAPI に適切なオプションを指定することで、この動作をオーバーライドできます。

テストする準備ができている mysql はありませんが、適切なオプション (client_flagまたはfound_rows=False使用する API に応じて) を構成 URL に追加するとうまくいくはずです。詳細については、 mysqlconnectorおよびoursqlの対応するソースを確認してください。

これがあなたを助けるのに十分であることを願っています。

于 2012-10-10T20:58:18.463 に答える