Possible Duplicate:
How to implement “autoincrement” on Google AppEngine
我在 AppEngine 中有一个 Python 应用程序。我正在使用高复制数据存储。
这是我的问题:
我有一个在没有父项的情况下保存的实体(为简单起见,将其称为“人”),它是 AppEngine 术语中的根实体。
在保存实体之前我没有设置 key_name,因为我想要由数据存储分配的数字 ID。一些代码:
p = Person(name='Juan Roman Riquelme')
p.put()
p.key().id() # the numeric ID
问题是ID不连续。每次我更新我的应用程序(appcfg.py update)时,id 都会从接下来的数千个开始。我的意思是,第一次更新应用程序时,ID 为 1、2、3 等。下一次为:1001、1002、1003等。第三次为:2001、2002等。
发生什么事了?我应该怎么做才能保持它们连续?
谢谢!
最佳答案
为什么需要它们连续?
App Engine 数据存储区不会分配连续的 ID。
如果您想要连续的ID,您必须自己分配ID。不要忘记使用 allocate_id_range (http://code.google.com/appengine/docs/python/datastore/functions.html),以便应用引擎不会自动分配已存在的 ID。
关于python - AppEngine - AppEngine HR 数据存储中奇怪的 ID 分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6457019/