繁体   English   中英

如何使用Peewee在表之间移动记录?

[英]How should I move a record between tables using Peewee?

我有两个表具有相同的字段。 一种是活动用户,另一种是存档用户:

 class BaseClass(Model)
      class Meta:
           database = db

 class User(BaseClass):
      name = CharField()
      # Various other fields

 class UserArchive(BaseClass):
      name = CharField()
      # Identical fields to User

像这样添加用户:

 User.create(name = "Tim")

但是,当我需要将用户从User移到UserArchive时,我会执行以下操作:

 user = User.get(User.name == "Tim")
 user_data = user._data
 del user_data["id"]
 UserArchive.create(**user_data)
 user.delete_instance()

这感觉有点麻烦。 有没有推荐的方法可以将记录从一个表移到另一个表?

UserArchive.insert_from(
   query=User.select(User.name).where(User.active == False),
   columns=[UserArchive.name])

生成

INSERT INTO userarchive ("name") SELECT "name" FROM user WHERE "active" = false;

提供您自己的where子句以适合您的需求。 当然,您仍然需要删除“用户”行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM