如何从我们的应用在谷歌appengine中使用的数据存储中删除行?

时间:2011-03-26 06:13:51

标签: python google-app-engine

所有视频和教程仅显示如何向数据存储添加内容并通过GqlQuery获取。如何从数据存储中删除东西? “DELETE FROM mytable WHERE condition”查询是否有效?

2 个答案:

答案 0 :(得分:6)

systempuntout和Forest的答案都是正确的 - 但是,您可能想知道您还可以将一些数据存储操作一起批量处理以获得更高的效率(请参阅App Engine团队的blog post)。

您可以像这样修改systempuntout的响应:

q = db.GqlQuery("SELECT * FROM Foo")
results = q.fetch(10)
db.delete(results)

不是删除每个项目的往返,而是删除大量项目的单个操作。

答案 1 :(得分:1)

GQL语言是只读的,对于从App Engine数据存储区检索实体或密钥非常有用。

对于DELETE语句,您必须使用delete提供的Datastore API方法。
一个例子:

q = db.GqlQuery("SELECT * FROM Foo")
results = q.fetch(10)
for result in results:
    result.delete()