2016-07-25 7 views
2

すでに展開されているアプリケーションでSQLObjectを使用している場合、前回の値が特定の値と一致する場合は、のみをに更新する必要があります。前回の値のチェック - SQLObject

同等のSQLは次のようになります。

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

我々はマークするジョブを取るとDBを更新することがあり、異なるサーバ上のデーモンの多くのインスタンス(お互いを知られていない)を持っているので、私はこれを必要としますジョブを「撮影済み」とします。

同じ値を設定する2つのノードからの「二重の更新」を防止したいと考えています。

影響を受ける行の数を結果として得ることができたらうれしいです。

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

答えて

0

SQLOBJECTは、いくつかのAPIがあります0の結果で、それはのようなコードの実際の一部が更新をやって...「ジョブは、既にフェッチと更新の間で撮影された」と言って

を可能にします層。高水準API(SQLObject継承クラス)を使用する場合は、条件付きのUPDATEを実行する方法はありません。 where -clauseは、SQLBuilderのUpdateで使用できます。

関連する問題