1

可能重复:
如何在 Google AppEngine 上实现“自动增量”

我在 AppEngine 中有一个 Python 应用程序。我正在使用高复制数据存储。

这是我的问题:

我有一个在没有父母的情况下保存的实体(为简单起见称为 Person),它是 AppEngine 术语中的根实体。

在保存我的实体之前,我没有设置 key_name,因为我想要 DataStore 分配的数字 ID。一些代码:

p = Person(name='Juan Roman Riquelme')
p.put()
p.key().id() # the numeric ID

问题是 ID 不连续。每次我更新我的应用程序(appcfg.py update .)时,ids 都会在接下来的数千个中开始。我的意思是,我第一次更新我的应用程序时,ID 为 1、2、3 等。下一次是:1001、1002、1003等。第三次:2001、2002等。

这是怎么回事?我应该怎么做才能让它们保持连续?

谢谢!

4

1 回答 1

3

为什么需要它们是连续的?

App Engine 数据存储区不会将 ID 分配为连续的。

如果您想要连续的 ID,您必须自己分配 ID。不要忘记使用 allocate_id_range (http://code.google.com/appengine/docs/python/datastore/functions.html),这样应用引擎就不会自动分配已经存在的 ID。

于 2011-06-23T16:35:35.710 回答