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

发布于 2024-11-16 18:17:18 字数 673 浏览 3 评论 0原文

可能的重复:
如何在 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等。

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

谢谢!

Possible Duplicate:
How to implement “autoincrement” on Google AppEngine

I've got a Python App in AppEngine. I'm using High Replication Datastore.

This is my problem:

I have an entity (call it Person for simplicity) that is saved without parents, it's a root entity in the AppEngine terms.

I don't set a key_name before save my entities, becouse i want the numeric IDs assigned by the DataStore. Some Code:

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

The problem is that the IDs are not consecutive. Every time i update my app (appcfg.py update .) the ids start in the next thousands. I mean, the first time i update my app, the IDs where 1,2,3,etc. The next time were: 1001,1002,1003, etc. The thirth: 2001,2002, etc.

What's going on? What should i do to keep them consecutive?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

饮惑 2024-11-23 18:17:18

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

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

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

Why do you need them to be consecutive?

App Engine datastore doesn't assign IDs to be consecutive.

If you want consecutive IDs, you must assign IDs yourself. Don't forget to use allocate_id_range (http://code.google.com/appengine/docs/python/datastore/functions.html) so that app engine doesn't automatically assign already-existing IDs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文