侧边栏壁纸
博主头像
此间少年

行动起来,活在当下

  • 累计撰写 10 篇文章
  • 累计创建 8 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

sqlmodel复制数据

Administrator
2024-12-01 / 0 评论 / 0 点赞 / 59 阅读 / 0 字 / 正在检测是否收录...

web项目使用sqlmodel连接数据库时需要复制数据到另外一张表

创建实体

# 任务表基类
class BaseTask(SQLModel):
    id: Optional[int] = Field(default=None, primary_key=True)

    # 任务名称
    name: str

    # 描述
    desc: Optional[str] = None

    # 创建时间
    create_time: datetime = Field(default_factory=datetime.now, nullable=False)


# 任务表
class Task(BaseTask, table=True):
    pass


# 任务历史表
class TaskHistory(BaseTask, table=True):
    # 记录时间
    time: datetime = Field(default_factory=datetime.now, nullable=False)

复制数据

@task_service.post("/copy")
async def copy():
    with Session(engine) as session:
        # 查询一条数据
        statement = select(Task).where()
        results = session.exec(statement)
        task: Task = results.first()

        # 复制数据到历史表中
        taskHistory: TaskHistory = TaskHistory.parse_obj(task)
        session.add(taskHistory)
        # 删除原表数据
        session.delete(task)

        session.commit()

    return Response.success()

0
博主关闭了所有页面的评论