How can I use "select for update" with sqlmodel? #1310
-
First Check
Commit to Help
Example CodeNot relevant DescriptionHi, with Session(engine) as session:
session.query(BomModel).filter(BomModel.serial == 123).with_for_update().first()
class BomModel(SQLModel, BomSchema, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
serial: int = Field(index=True)
order_id: int = Field(index=True)
assembly_id: str = Field(index=True)
bom: dict = Field(sa_column=Column(JSONB), default_factory=dict) and class BomSchema(BaseModel):
serial: int = Field(frozen=True)
order_id: int = Field(frozen=True)
assembly_id: str = Field(frozen=True)
bom: dict = Field(default={}) I already tried to change Operating SystemLinux Operating System DetailsNo response SQLModel Version0.0.22 Python Version3.9 Additional ContextNo response |
Beta Was this translation helpful? Give feedback.
Answered by
YuriiMotov
Aug 21, 2025
Replies: 1 comment
-
Seems that this works: st = select(BomModel).filter(BomModel.serial == 123).with_for_update()
print(st.compile(engine))
# SELECT bommodel.id, bommodel.serial
# FROM bommodel
# WHERE bommodel.serial = %(serial_1)s FOR UPDATE
obj = session.exec(st).first() |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
YuriiMotov
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Seems that this works: