【发布时间】:2022-11-15 22:33:12
【问题描述】:
我需要获取在插入语句后在表中创建的整个 orm 实例,因为数据库为主键(数据库 - postgresql)生成了 UUID。
stmt = insert(Table).values(data).returning(Table)
orm_instance = session.execute(stmt).scalar()
其中 Table 定义非常简单:
class Table(BaseModel):
__tablename__ = "table"
uuid = Column(UUID(as_uuid=True), primary_key=True)
name = Column(String)
# ... another fields
但是,由于未知原因,上面的语句仅返回主键。
目前我必须执行 select 才能继续工作,这很丑陋。
stmt = insert(Table).values(data).returning(Table)
uuid = session.execute(stmt).scalar()
stmt = select(Table).where(Table.uuid == uuid)
orm_instance = session.execute(stmt).scalar()
如何返回整个实例避免提及.returning()中的每一列
【问题讨论】:
标签: python sqlalchemy orm