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()