python - AppEngine - AppEngine HR 数据存储中奇怪的 ID 分配

标签 python google-app-engine google-cloud-datastore flask

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/

相关文章:

java - 数据存储设计 - 如何模拟高效连接

python - 如何使用枚举读取和更改 python 中的特定行?

python - 是否可以将 python 子进程的输出实时流式传输到网页?

java - GAE + Spring MVC : Saving image file to BlobStore

java - Rest、Rest Api、Web Service、RestFul Api 之间的区别

python - 从 Google App Engine 数据存储区获取随机记录?

python - 如何使用python将数据从一个mysql数据库传输到另一个数据库并映射具有不同列名的数据

python - 如何在 CNTK 中训练具有多个输出层的网络?

java - 灵活环境使用什么服务帐户来访问另一个项目中的数据存储?

google-app-engine - 从 Google Dataflow 保存到 Google Datastore