我应该如何使用 Peewee 在表之间移动记录?
How should I move a record between tables using Peewee?
我有两个具有相同字段的 table。一种用于活跃用户,一种用于封存用户:
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()
感觉有点麻烦。是否有推荐的方法将记录从一个 table 移动到另一个?
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 子句以满足您的需要。当然,您仍然需要删除用户行。
我有两个具有相同字段的 table。一种用于活跃用户,一种用于封存用户:
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()
感觉有点麻烦。是否有推荐的方法将记录从一个 table 移动到另一个?
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 子句以满足您的需要。当然,您仍然需要删除用户行。