第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 SQLAlchemy 中,如何在使用樂觀鎖更新后獲取受影響的行?

在 SQLAlchemy 中,如何在使用樂觀鎖更新后獲取受影響的行?

蕪湖不蕪 2021-09-25 22:05:47
很抱歉問這個問題,但在搜索這個問題后我找不到任何有用的答案。我知道在 SQLAlchemy 的會話中,update()將無法工作,甚至可能無法與數(shù)據(jù)庫通信,直到您使用session.commit.這是我的代碼,我認為我使用的技能稱為optimistic lock:with Session() as session:    # get one record    object = session.query(Table).where(key=param).limit(1)    content = "here is the calculated value of my business"    # update the record by the id of the gotten record     # if 2 thread get the same record and run into this update statement, I think only can success    # because it is ensured by the MySQL MVCC    Table.update(Table).set(Table.content = content).where(id = object.id)    sessoin.commit()但是我在這里有一個問題,如果我想在in the thread which got the lock之后做點什么session.commit()?比如我期望的代碼是這樣的:affected_rows = sessoin.commit()if affected_rows:    do_something_after_get_lock_success()有人可以幫忙嗎?非常感謝!^_^
查看完整描述

1 回答

?
開心每一天1111

TA貢獻1836條經(jīng)驗 獲得超13個贊

根據(jù)文檔,ResultProxy有一個屬性rowcount。您可以從中獲取受影響的行。

但請注意:

此屬性返回匹配的行數(shù),這不一定與實際修改的行數(shù)相同 - 例如,如果給定的 SET 值與那些已經(jīng)在行中的人。這樣的行將被匹配但不會被修改。在具有兩種樣式的后端(例如 MySQL)上,默認情況下配置 rowcount 以在所有情況下返回匹配計數(shù)。

請參閱此處了解有關(guān)此問題的偉大邁克·拜耳 (Mike Bayer) 解釋。


查看完整回答
反對 回復 2021-09-25
  • 1 回答
  • 0 關(guān)注
  • 374 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號