我在我的DB(postgresql 9.5)中有2個sqlalchemy模型。SqlAlchemy鎖定2個表中的外部行
class AModel(Model):
id = db.Column(db.Integer, primary_key=True)
class BModel(Model):
id = db.Column(db.Integer, primary_key=True)
a_id = db.Column(db.ForeignKey('amodel.id'), index=True)
a = db.relationship('AModel', backref=db.backref('bmodel'))
現在我想鎖更新記錄BModel
(但我也想從AModel
表鎖相關的行,這樣就不會被其他進程編輯)。
我可以鎖定模型BModel
:
db.session(BModel).query.with_for_update().filter(BModel.id == id).first()
但有可能在一個語句來鎖定相關模型AModel
?或者我需要鎖定第二個記錄的明確性,即使我不更新它?
你在用什麼數據庫? –
我正在使用postgresql 9.5和python 3.6 – Blejwi