gpt4 book ai didi

google-app-engine - App Engine 数据存储中的自动增量 ID

转载 作者:太空宇宙 更新时间:2023-11-03 15:34:41 24 4
gpt4 key购买 nike

我正在使用 App Engine 数据存储区,并希望确保行 ID 的行为类似于 mySQL 数据库中的“自动递增”字段。

尝试了几种生成策略,但似乎无法控制发生的事情:

  • ID不是连续的,好像有几条“流”在平行生长。
  • 删除旧行后,id 得到“回收”

这样的事情可能吗?我真的很想避免为每一行保留(索引)时间戳。

最佳答案

听起来像你can't rely on IDs being sequential无需大量额外工作。但是,有一种简单的方法可以实现您想要做的事情:

We'd like to delete old items (older than two month worth, for example)

这是一个自动跟踪其创建和修改时间的模型。只需使用 auto_now_addauto_now 参数即可使这变得微不足道。

from google.appengine.ext import db

class Document(db.Model):
user = db.UserProperty(required=True)
title = db.StringProperty(default="Untitled")
content = db.TextProperty(default=DEFAULT_DOC)
created = db.DateTimeProperty(auto_now_add=True)
modified = db.DateTimeProperty(auto_now=True)

然后你可以使用cron jobstask queue安排删除旧内容的维护任务。查找最旧的东西就像按创建日期或修改日期排序一样简单:

db.Query(Document).order("modified")
# or
db.Query(Document).order("created")

关于google-app-engine - App Engine 数据存储中的自动增量 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8393585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com