簡體   English   中英

更新值檢查上一個-SQLObject

[英]Update value checking previous one - SQLObject

在已經使用SQLObject部署的應用程序中, 當先前值與某個值匹配時才需要更新值。

等效的sql可能是:

UPDATE jobs SET status='150' WHERE id=1234 AND status='100'

我需要這樣做,是因為我們在不同的服務器上有許多守護程序實例(彼此不認識),它們可能想要執行作業並更新數據庫以將作業標記為“已執行”。

我想防止來自兩個節點設置相同值的“雙重更新”。

如果可以得到受影響的行數,那就太好了。 結果為0時,可以說“作業已在獲取和更新之間執行”。

執行更新的代碼的實際部分如下所示:

def __setattr__(self, name, value):
    """Override setattr to log build status changes"""
    [...]
    sqlobject.SQLObject.__setattr__(self, name, value)

SQLObject有一些API層。 如果使用高級API(SQLObject繼承的類),則無法執行條件UPDATE。 where -clause在SQLBuilder的Update中可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM